sig
  exception Exit_OK
  exception Exit_usage of string
  exception Exit_system_error of string
  exception Exit_with_code of int
  exception Exit_silently_with_code of int
  module Outcome : Signatures.OUTCOME
  val ksbprintf :
    (string -> 'a) ->
    ('b, Format.formatter, unit, 'a) Pervasives.format4 -> 'b
  val sbprintf :
    ('a, Format.formatter, unit, string) Pervasives.format4 -> 'a
  module Set :
    sig
      module type OrderedTypePrintable = Signatures.OrderedTypePrintable
      module type S = Signatures.SET
      module Make :
        functor (M : OrderedTypePrintable->
          sig
            type elt = M.t
            type t
            val empty : t
            val is_empty : t -> bool
            val mem : elt -> t -> bool
            val add : elt -> t -> t
            val singleton : elt -> t
            val remove : elt -> t -> t
            val union : t -> t -> t
            val inter : t -> t -> t
            val diff : t -> t -> t
            val compare : t -> t -> int
            val equal : t -> t -> bool
            val subset : t -> t -> bool
            val iter : (elt -> unit) -> t -> unit
            val fold : (elt -> '-> 'a) -> t -> '-> 'a
            val for_all : (elt -> bool) -> t -> bool
            val exists : (elt -> bool) -> t -> bool
            val filter : (elt -> bool) -> t -> t
            val partition : (elt -> bool) -> t -> t * t
            val cardinal : t -> int
            val elements : t -> elt list
            val min_elt : t -> elt
            val max_elt : t -> elt
            val choose : t -> elt
            val split : elt -> t -> t * bool * t
            val find : (elt -> bool) -> t -> elt
            val map : (elt -> elt) -> t -> t
            val of_list : elt list -> t
            val print : Format.formatter -> t -> unit
          end
    end
  module List : Signatures.LIST
  module String : Signatures.STRING
  module Digest :
    sig
      type t = string
      val string : string -> My_std.Digest.t
      val substring : string -> int -> int -> My_std.Digest.t
      external channel : Pervasives.in_channel -> int -> My_std.Digest.t
        = "caml_md5_chan"
      val file : string -> My_std.Digest.t
      val output : Pervasives.out_channel -> My_std.Digest.t -> unit
      val input : Pervasives.in_channel -> My_std.Digest.t
      val to_hex : My_std.Digest.t -> string
    end
  module StringSet :
    sig
      type elt = String.t
      type t
      val empty : t
      val is_empty : t -> bool
      val mem : elt -> t -> bool
      val add : elt -> t -> t
      val singleton : elt -> t
      val remove : elt -> t -> t
      val union : t -> t -> t
      val inter : t -> t -> t
      val diff : t -> t -> t
      val compare : t -> t -> int
      val equal : t -> t -> bool
      val subset : t -> t -> bool
      val iter : (elt -> unit) -> t -> unit
      val fold : (elt -> '-> 'a) -> t -> '-> 'a
      val for_all : (elt -> bool) -> t -> bool
      val exists : (elt -> bool) -> t -> bool
      val filter : (elt -> bool) -> t -> t
      val partition : (elt -> bool) -> t -> t * t
      val cardinal : t -> int
      val elements : t -> elt list
      val min_elt : t -> elt
      val max_elt : t -> elt
      val choose : t -> elt
      val split : elt -> t -> t * bool * t
      val find : (elt -> bool) -> t -> elt
      val map : (elt -> elt) -> t -> t
      val of_list : elt list -> t
      val print : Format.formatter -> t -> unit
    end
  val sys_readdir : string -> (string array, exn) Outcome.t
  val sys_remove : string -> unit
  val reset_readdir_cache : unit -> unit
  val reset_filesys_cache : unit -> unit
  val reset_filesys_cache_for_file : string -> unit
  val sys_file_exists : string -> bool
  val sys_command : string -> int
  val filename_concat : string -> string -> string
  val invalid_arg' :
    ('a, Format.formatter, unit, 'b) Pervasives.format4 -> 'a
  val opt_print :
    (Format.formatter -> '-> unit) -> Format.formatter -> 'a option -> unit
  val the : 'a option -> 'a
  val getenv : ?default:string -> string -> string
  val with_input_file : ?bin:bool -> string -> (in_channel -> 'a) -> 'a
  val with_output_file : ?bin:bool -> string -> (out_channel -> 'a) -> 'a
  val with_temp_file : string -> string -> (string -> 'a) -> 'a
  val read_file : string -> string
  val copy_chan : in_channel -> out_channel -> unit
  val copy_file : string -> string -> unit
  val print_string_list : Format.formatter -> string list -> unit
  val ( !* ) : 'Lazy.t -> 'a
  val ( & ) : ('-> 'b) -> '-> 'b
  val ( |> ) : '-> ('-> 'b) -> 'b
  val ( @:= ) : 'a list ref -> 'a list -> unit
  val memo : ('-> 'b) -> '-> 'b
end