sig
  type t
  val is_empty : B0_std.Cmd.t -> bool
  val empty : B0_std.Cmd.t
  val arg : string -> B0_std.Cmd.t
  val append : B0_std.Cmd.t -> B0_std.Cmd.t -> B0_std.Cmd.t
  val shield : B0_std.Cmd.t -> B0_std.Cmd.t
  val ( % ) : B0_std.Cmd.t -> string -> B0_std.Cmd.t
  val ( %% ) : B0_std.Cmd.t -> B0_std.Cmd.t -> B0_std.Cmd.t
  val if' : bool -> B0_std.Cmd.t -> B0_std.Cmd.t
  val path : B0_std.Fpath.t -> B0_std.Cmd.t
  val spath : B0_std.Fpath.t -> B0_std.Cmd.t
  val args : ?slip:string -> string list -> B0_std.Cmd.t
  val rev_args : ?slip:string -> string list -> B0_std.Cmd.t
  val of_list : ?slip:string -> ('-> string) -> 'a list -> B0_std.Cmd.t
  val of_rev_list : ?slip:string -> ('-> string) -> 'a list -> B0_std.Cmd.t
  val paths : ?slip:string -> B0_std.Fpath.t list -> B0_std.Cmd.t
  val rev_paths : ?slip:string -> B0_std.Fpath.t list -> B0_std.Cmd.t
  type tool = B0_std.Fpath.t
  val tool : B0_std.Cmd.t -> B0_std.Cmd.tool option
  val set_tool : B0_std.Cmd.tool -> B0_std.Cmd.t -> B0_std.Cmd.t option
  val get_tool : B0_std.Cmd.t -> B0_std.Cmd.tool
  val is_singleton : B0_std.Cmd.t -> bool
  val to_list : B0_std.Cmd.t -> string list
  val to_sig : B0_std.Cmd.t -> string list
  val to_list_and_sig : B0_std.Cmd.t -> string list * string list
  val to_string : B0_std.Cmd.t -> string
  val of_string : string -> (B0_std.Cmd.t, string) Stdlib.result
  val conv : B0_std.Cmd.t B0_std.Conv.t
  val pp : B0_std.Cmd.t B0_std.Fmt.t
  val dump : B0_std.Cmd.t B0_std.Fmt.t
end