sig   module Env :     sig       val var : string -> string option       val opt_var : string -> absent:string -> string     end   module File :     sig       val null : Topkg.fpath       val dash : Topkg.fpath       val exists : Topkg.fpath -> bool Topkg.result       val must_exist : Topkg.fpath -> Topkg.fpath Topkg.result       val delete : ?must_exist:bool -> Topkg.fpath -> unit Topkg.result       val fold :         ?skip:(Topkg.fpath -> bool) ->         (Topkg.fpath -> '-> 'a) ->         '-> Topkg.fpath list -> 'Topkg.result       val read : Topkg.fpath -> string Topkg.result       val write : Topkg.fpath -> string -> unit Topkg.result       val write_subst :         Topkg.fpath -> (string * string) list -> string -> unit Topkg.result       val tmp : unit -> Topkg.fpath Topkg.result     end   module Dir :     sig       val exists : Topkg.fpath -> bool Topkg.result       val must_exist : Topkg.fpath -> Topkg.fpath Topkg.result       val contents :         ?dotfiles:bool ->         ?rel:bool -> Topkg.fpath -> Topkg.fpath list Topkg.result       val current : unit -> Topkg.fpath Topkg.result       val set_current : Topkg.fpath -> unit Topkg.result       val with_current : Topkg.fpath -> ('-> 'b) -> '-> 'Topkg.result     end   module Cmd :     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 end