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