sig
  exception Process_error of OpamProcess.result
  exception Command_not_found of string
  val process_error : OpamProcess.result -> 'a
  val raise_on_process_error : OpamProcess.result -> unit
  exception Internal_error of string
  val internal_error : ('a, unit, string, 'b) Pervasives.format4 -> 'a
  val with_tmp_dir : (string -> 'a) -> 'a
  val with_tmp_dir_job : (string -> 'OpamProcess.job) -> 'OpamProcess.job
  val verbose_for_base_commands : unit -> bool
  val copy : string -> string -> unit
  val install : ?exec:bool -> string -> string -> unit
  val is_exec : string -> bool
  val link : string -> string -> unit
  val real_path : string -> string
  val string_of_channel : Pervasives.in_channel -> string
  exception File_not_found of string
  val read : string -> string
  val write : string -> string -> unit
  val remove : string -> unit
  val remove_file : string -> unit
  val remove_dir : string -> unit
  val chdir : string -> unit
  val in_dir : string -> (unit -> 'a) -> 'a
  val files_with_links : string -> string list
  val rec_files : string -> string list
  val files : string -> string list
  val rec_dirs : string -> string list
  val dirs : string -> string list
  val dir_is_empty : string -> bool
  val ocaml_version : string option Lazy.t
  val ocaml_native_available : bool Lazy.t
  val ocaml_opt_available : bool Lazy.t
  val ocaml_natdynlink_available : bool Lazy.t
  val system_ocamlc_where : string option Lazy.t
  val system_ocamlc_version : string option Lazy.t
  val directories_with_links : string -> string list
  val make_command :
    ?verbose:bool ->
    ?env:string array ->
    ?name:string ->
    ?text:string ->
    ?metadata:(string * string) list ->
    ?allow_stdin:bool ->
    ?dir:string ->
    ?check_existence:bool -> string -> string list -> OpamProcess.command
  type command = string list
  val command_exists : ?env:string array -> ?dir:string -> string -> bool
  val command :
    ?verbose:bool ->
    ?env:string array ->
    ?name:string ->
    ?metadata:(string * string) list ->
    ?allow_stdin:bool -> OpamSystem.command -> unit
  val commands :
    ?verbose:bool ->
    ?env:string array ->
    ?name:string ->
    ?metadata:(string * string) list ->
    ?keep_going:bool -> OpamSystem.command list -> unit
  val read_command_output :
    ?verbose:bool ->
    ?env:string array ->
    ?metadata:(string * string) list ->
    ?allow_stdin:bool -> OpamSystem.command -> string list
  val is_tar_archive : string -> bool
  val extract : string -> string -> unit
  val extract_in : string -> string -> unit
  val mkdir : string -> unit
  type lock
  val flock : ?read:bool -> string -> OpamSystem.lock
  val funlock : OpamSystem.lock -> unit
  val download :
    overwrite:bool ->
    ?compress:bool ->
    ?checksum:string ->
    filename:string -> dst:string -> string OpamProcess.job
  val patch : string -> unit
  val temp_file : ?dir:string -> string -> string
  val print_stats : unit -> unit
  val path_sep : char
end