sig
  val exists : Topkg.Cmd.t -> bool Topkg.result
  val must_exist : Topkg.Cmd.t -> Topkg.Cmd.t Topkg.result
  val run : ?err:Topkg.fpath -> Topkg.Cmd.t -> unit Topkg.result
  val run_status :
    ?err:Topkg.fpath -> Topkg.Cmd.t -> [ `Exited of int ] Topkg.result
  type run_status = Topkg.Cmd.t * [ `Exited of int ]
  val success :
    ('a * Topkg.OS.Cmd.run_status) Topkg.result -> 'Topkg.result
  type run_out
  val out_string :
    ?trim:bool ->
    Topkg.OS.Cmd.run_out -> (string * Topkg.OS.Cmd.run_status) Topkg.result
  val out_lines :
    ?trim:bool ->
    Topkg.OS.Cmd.run_out ->
    (string list * Topkg.OS.Cmd.run_status) Topkg.result
  val out_file :
    Topkg.fpath ->
    Topkg.OS.Cmd.run_out -> (unit * Topkg.OS.Cmd.run_status) Topkg.result
  val out_stdout :
    Topkg.OS.Cmd.run_out -> (unit * Topkg.OS.Cmd.run_status) Topkg.result
  val to_string : ?trim:bool -> Topkg.OS.Cmd.run_out -> string Topkg.result
  val to_lines :
    ?trim:bool -> Topkg.OS.Cmd.run_out -> string list Topkg.result
  val to_file : Topkg.fpath -> Topkg.OS.Cmd.run_out -> unit Topkg.result
  val run_out : ?err:Topkg.fpath -> Topkg.Cmd.t -> Topkg.OS.Cmd.run_out
end