sig
  val find_tool :
    ?search:B0_std.Fpath.t list ->
    B0_std.Cmd.tool -> (B0_std.Fpath.t option, string) Stdlib.result
  val must_find_tool :
    ?search:B0_std.Fpath.t list ->
    B0_std.Cmd.tool -> (B0_std.Fpath.t, string) Stdlib.result
  val find_first_tool :
    ?search:B0_std.Fpath.t list ->
    B0_std.Cmd.tool list -> (B0_std.Fpath.t option, string) Stdlib.result
  val find :
    ?search:B0_std.Fpath.t list ->
    B0_std.Cmd.t -> (B0_std.Cmd.t option, string) Stdlib.result
  val must_find :
    ?search:B0_std.Fpath.t list ->
    B0_std.Cmd.t -> (B0_std.Cmd.t, string) Stdlib.result
  val find_first :
    ?search:B0_std.Fpath.t list ->
    B0_std.Cmd.t list -> (B0_std.Cmd.t option, string) Stdlib.result
  type status = [ `Exited of int | `Signaled of int ]
  val pp_status : B0_std.Os.Cmd.status B0_std.Fmt.t
  val pp_cmd_status : (B0_std.Cmd.t * B0_std.Os.Cmd.status) B0_std.Fmt.t
  type stdi
  val in_string : string -> B0_std.Os.Cmd.stdi
  val in_file : B0_std.Fpath.t -> B0_std.Os.Cmd.stdi
  val in_fd : close:bool -> Unix.file_descr -> B0_std.Os.Cmd.stdi
  val in_stdin : B0_std.Os.Cmd.stdi
  val in_null : B0_std.Os.Cmd.stdi
  type stdo
  val out_file : B0_std.Fpath.t -> B0_std.Os.Cmd.stdo
  val out_fd : close:bool -> Unix.file_descr -> B0_std.Os.Cmd.stdo
  val out_stdout : B0_std.Os.Cmd.stdo
  val out_stderr : B0_std.Os.Cmd.stdo
  val out_null : B0_std.Os.Cmd.stdo
  val run_status :
    ?env:B0_std.Os.Env.assignments ->
    ?cwd:B0_std.Fpath.t ->
    ?stdin:B0_std.Os.Cmd.stdi ->
    ?stdout:B0_std.Os.Cmd.stdo ->
    ?stderr:B0_std.Os.Cmd.stdo ->
    B0_std.Cmd.t -> (B0_std.Os.Cmd.status, string) Stdlib.result
  val run_status_out :
    ?env:B0_std.Os.Env.assignments ->
    ?cwd:B0_std.Fpath.t ->
    ?stdin:B0_std.Os.Cmd.stdi ->
    ?stderr:[ `Out | `Stdo of B0_std.Os.Cmd.stdo ] ->
    ?trim:bool ->
    B0_std.Cmd.t -> (B0_std.Os.Cmd.status * string, string) Stdlib.result
  val run :
    ?env:B0_std.Os.Env.assignments ->
    ?cwd:B0_std.Fpath.t ->
    ?stdin:B0_std.Os.Cmd.stdi ->
    ?stdout:B0_std.Os.Cmd.stdo ->
    ?stderr:B0_std.Os.Cmd.stdo ->
    B0_std.Cmd.t -> (unit, string) Stdlib.result
  val run_out :
    ?env:B0_std.Os.Env.assignments ->
    ?cwd:B0_std.Fpath.t ->
    ?stdin:B0_std.Os.Cmd.stdi ->
    ?stderr:[ `Out | `Stdo of B0_std.Os.Cmd.stdo ] ->
    ?trim:bool -> B0_std.Cmd.t -> (string, string) Stdlib.result
  type pid
  val pid_to_int : B0_std.Os.Cmd.pid -> int
  val spawn :
    ?env:B0_std.Os.Env.assignments ->
    ?cwd:B0_std.Fpath.t ->
    ?stdin:B0_std.Os.Cmd.stdi ->
    ?stdout:B0_std.Os.Cmd.stdo ->
    ?stderr:B0_std.Os.Cmd.stdo ->
    B0_std.Cmd.t -> (B0_std.Os.Cmd.pid, string) Stdlib.result
  val spawn_poll_status :
    B0_std.Os.Cmd.pid -> (B0_std.Os.Cmd.status option, string) Stdlib.result
  val spawn_wait_status :
    B0_std.Os.Cmd.pid -> (B0_std.Os.Cmd.status, string) Stdlib.result
  type spawn_tracer =
      B0_std.Os.Cmd.pid ->
      B0_std.Os.Env.assignments option ->
      cwd:B0_std.Fpath.t option -> B0_std.Cmd.t -> unit
  val spawn_tracer_nop : B0_std.Os.Cmd.spawn_tracer
  val spawn_tracer : unit -> B0_std.Os.Cmd.spawn_tracer
  val set_spawn_tracer : B0_std.Os.Cmd.spawn_tracer -> unit
  val execv :
    ?env:B0_std.Os.Env.assignments ->
    ?cwd:B0_std.Fpath.t ->
    B0_std.Fpath.t -> B0_std.Cmd.t -> (unit, string) Stdlib.result
end