sig   module Env :     sig       val find : ?empty_is_absent:bool -> string -> string option       val get : ?empty_is_absent:bool -> string -> absent:string -> string       val value :         ?empty_is_absent:bool ->         string -> 'B0.Conv.t -> absent:'-> 'B0.result       val get_value :         ?log:B0.Log.level ->         ?empty_is_absent:bool -> string -> 'B0.Conv.t -> absent:'-> 'a       type t = string B0.String.map       val empty : B0.OS.Env.t       val current : unit -> B0.OS.Env.t B0.result       val override : B0.OS.Env.t -> by:B0.OS.Env.t -> B0.OS.Env.t       val assignments : unit -> string list B0.result       val of_assignments :         ?init:B0.OS.Env.t -> string list -> B0.OS.Env.t B0.result       val to_assignments : B0.OS.Env.t -> string list     end   module File :     sig       val null : B0.Fpath.t       val dash : B0.Fpath.t       val exists : B0.Fpath.t -> bool B0.result       val must_exist : B0.Fpath.t -> B0.Fpath.t B0.result       val delete : ?must_exist:bool -> B0.Fpath.t -> unit B0.result       val link :         force:bool -> target:B0.Fpath.t -> B0.Fpath.t -> unit B0.result       val is_executable : B0.Fpath.t -> bool       val with_ic :         B0.Fpath.t ->         (Pervasives.in_channel -> '-> 'b) -> '-> 'B0.result       val read : B0.Fpath.t -> string B0.result       val with_oc :         ?mode:int ->         B0.Fpath.t ->         (Pervasives.out_channel -> '-> ('c, 'd) Pervasives.result) ->         '-> ('c, 'd) Pervasives.result B0.result       val write : ?mode:int -> B0.Fpath.t -> string -> unit B0.result       val with_tmp_oc :         ?flags:Unix.open_flag list ->         ?mode:int ->         B0.Fpath.t ->         (B0.Fpath.t -> Pervasives.out_channel -> '-> 'b) ->         '-> 'B0.result     end   module Dir :     sig       val exists : B0.Fpath.t -> bool B0.result       val must_exist : B0.Fpath.t -> B0.Fpath.t B0.result       val create : ?path:bool -> ?mode:int -> B0.Fpath.t -> bool B0.result       val delete :         ?must_exist:bool -> contents:bool -> B0.Fpath.t -> unit B0.result       val contents :         ?dotfiles:bool ->         ?rel:bool -> B0.Fpath.t -> B0.Fpath.t list B0.result       val files :         ?dotfiles:bool ->         ?rel:bool -> B0.Fpath.t -> B0.Fpath.t list B0.result       val dirs :         ?dotfiles:bool ->         ?rel:bool -> B0.Fpath.t -> B0.Fpath.t list B0.result       val current : unit -> B0.Fpath.t B0.result       val set_current : B0.Fpath.t -> unit B0.result       val with_current : B0.Fpath.t -> ('-> 'b) -> '-> 'B0.result       val default_tmp : unit -> B0.Fpath.t       val set_default_tmp : B0.Fpath.t -> unit     end   module Cmd :     sig       val find_tool :         ?search:B0.Fpath.t list -> B0.Cmd.t -> B0.Fpath.t option B0.result       val get_tool :         ?search:B0.Fpath.t list -> B0.Cmd.t -> B0.Fpath.t B0.result       val exists : ?search:B0.Fpath.t list -> B0.Cmd.t -> bool B0.result       val must_exist :         ?search:B0.Fpath.t list -> B0.Cmd.t -> B0.Cmd.t B0.result       val resolve : ?search:B0.Fpath.t list -> B0.Cmd.t -> B0.Cmd.t B0.result       val search_path_dirs :         ?sep:string -> string -> B0.Fpath.t list B0.result       type status = [ `Exited of int | `Signaled of int ]       val pp_status : B0.OS.Cmd.status B0.Fmt.t       val pp_cmd_status : (B0.Cmd.t * B0.OS.Cmd.status) B0.Fmt.t       type stdi       type stdo       val in_string : string -> B0.OS.Cmd.stdi       val in_file : B0.Fpath.t -> B0.OS.Cmd.stdi       val in_fd : close:bool -> Unix.file_descr -> B0.OS.Cmd.stdi       val in_stdin : B0.OS.Cmd.stdi       val in_null : B0.OS.Cmd.stdi       val out_file : B0.Fpath.t -> B0.OS.Cmd.stdo       val out_fd : close:bool -> Unix.file_descr -> B0.OS.Cmd.stdo       val out_stdout : B0.OS.Cmd.stdo       val out_stderr : B0.OS.Cmd.stdo       val out_null : B0.OS.Cmd.stdo       val run_status :         ?env:string list ->         ?cwd:B0.Fpath.t ->         ?stdin:B0.OS.Cmd.stdi ->         ?stdout:B0.OS.Cmd.stdo ->         ?stderr:B0.OS.Cmd.stdo -> B0.Cmd.t -> B0.OS.Cmd.status B0.result       val run_status_out :         ?trim:bool ->         ?env:string list ->         ?cwd:B0.Fpath.t ->         ?stdin:B0.OS.Cmd.stdi ->         ?stderr:[ `Out | `Stdo of B0.OS.Cmd.stdo ] ->         B0.Cmd.t -> (B0.OS.Cmd.status * string) B0.result       val run :         ?env:string list ->         ?cwd:B0.Fpath.t ->         ?stdin:B0.OS.Cmd.stdi ->         ?stdout:B0.OS.Cmd.stdo ->         ?stderr:B0.OS.Cmd.stdo -> B0.Cmd.t -> unit B0.result       val run_out :         ?trim:bool ->         ?env:string list ->         ?cwd:B0.Fpath.t ->         ?stdin:B0.OS.Cmd.stdi ->         ?stderr:[ `Out | `Stdo of B0.OS.Cmd.stdo ] ->         B0.Cmd.t -> string B0.result       type pid       val pid_to_int : B0.OS.Cmd.pid -> int       val spawn :         ?env:string list ->         ?cwd:B0.Fpath.t ->         ?stdin:B0.OS.Cmd.stdi ->         ?stdout:B0.OS.Cmd.stdo ->         ?stderr:B0.OS.Cmd.stdo -> B0.Cmd.t -> B0.OS.Cmd.pid B0.result       val collect :         ?block:bool -> B0.OS.Cmd.pid -> B0.OS.Cmd.status option B0.result       val execv :         ?env:string list ->         ?cwd:B0.Fpath.t -> B0.Fpath.t -> B0.Cmd.t -> unit B0.result     end end