sig   val announce : ?ppf:Format.formatter -> unit -> unit   module String :     sig       external length : string -> int = "%string_length"       external get : string -> int -> char = "%string_safe_get"       external set : bytes -> int -> char -> unit = "%string_safe_set"       external create : int -> bytes = "caml_create_string"       val make : int -> char -> string       val init : int -> (int -> char) -> string       val copy : string -> string       val sub : string -> int -> int -> string       val fill : bytes -> int -> int -> char -> unit       val blit : string -> int -> bytes -> int -> int -> unit       val concat : string -> string list -> string       val iter : (char -> unit) -> string -> unit       val iteri : (int -> char -> unit) -> string -> unit       val map : (char -> char) -> string -> string       val mapi : (int -> char -> char) -> string -> string       val trim : string -> string       val escaped : string -> string       val index : string -> char -> int       val rindex : string -> char -> int       val index_from : string -> int -> char -> int       val rindex_from : string -> int -> char -> int       val contains : string -> char -> bool       val contains_from : string -> int -> char -> bool       val rcontains_from : string -> int -> char -> bool       val uppercase : string -> string       val lowercase : string -> string       val capitalize : string -> string       val uncapitalize : string -> string       val uppercase_ascii : string -> string       val lowercase_ascii : string -> string       val capitalize_ascii : string -> string       val uncapitalize_ascii : string -> string       type t = string       val compare : t -> t -> int       val equal : t -> t -> bool       external unsafe_get : string -> int -> char = "%string_unsafe_get"       external unsafe_set : bytes -> int -> char -> unit         = "%string_unsafe_set"       external unsafe_blit : string -> int -> bytes -> int -> int -> unit         = "caml_blit_string" [@@noalloc]       external unsafe_fill : bytes -> int -> int -> char -> unit         = "caml_fill_string" [@@noalloc]       val cut : sep:char -> string -> (string * string) option       val rev_cut : sep:char -> string -> (string * string) option       val rev_cuts : sep:char -> string -> string list       val edit_distance : string -> string -> int       val suggest : ?dist:int -> string list -> string -> string list       module Set :         sig           type elt = string           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 -> t -> elt           val of_list : elt list -> t         end       module Map :         sig           type key = string           type +'a t           val empty : 'a t           val is_empty : 'a t -> bool           val mem : key -> 'a t -> bool           val add : key -> '-> 'a t -> 'a t           val singleton : key -> '-> 'a t           val remove : key -> 'a t -> 'a t           val merge :             (key -> 'a option -> 'b option -> 'c option) ->             'a t -> 'b t -> 'c t           val union : (key -> '-> '-> 'a option) -> 'a t -> 'a t -> 'a t           val compare : ('-> '-> int) -> 'a t -> 'a t -> int           val equal : ('-> '-> bool) -> 'a t -> 'a t -> bool           val iter : (key -> '-> unit) -> 'a t -> unit           val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b           val for_all : (key -> '-> bool) -> 'a t -> bool           val exists : (key -> '-> bool) -> 'a t -> bool           val filter : (key -> '-> bool) -> 'a t -> 'a t           val partition : (key -> '-> bool) -> 'a t -> 'a t * 'a t           val cardinal : 'a t -> int           val bindings : 'a t -> (key * 'a) list           val min_binding : 'a t -> key * 'a           val max_binding : 'a t -> key * 'a           val choose : 'a t -> key * 'a           val split : key -> 'a t -> 'a t * 'a option * 'a t           val find : key -> 'a t -> 'a           val map : ('-> 'b) -> 'a t -> 'b t           val mapi : (key -> '-> 'b) -> 'a t -> 'b t         end     end   module Fmt :     sig       val ansi_tty : bool Pervasives.ref       type 'a t = Format.formatter -> '-> unit       val pf :         Format.formatter ->         ('a, Format.formatter, unit) Pervasives.format -> 'a       val string : string Omod.Private.Fmt.t       val list :         ?sep:unit Omod.Private.Fmt.t ->         'Omod.Private.Fmt.t -> 'a list Omod.Private.Fmt.t       val tty_str : mode:string -> string Omod.Private.Fmt.t       val faint : string Omod.Private.Fmt.t     end   module File :     sig       val cut_ext : Omod.fpath -> string * string       val catch_sys_error :         (unit -> ('a, string) Pervasives.result) ->         ('a, string) Pervasives.result       val with_open_in :         string ->         (Pervasives.in_channel -> 'a) -> ('a, string) Pervasives.result       val with_open_out :         string ->         (Pervasives.out_channel -> 'a) -> ('a, string) Pervasives.result       val to_string : Omod.fpath -> (string, string) Pervasives.result       val of_string :         Omod.fpath -> string -> (unit, string) Pervasives.result       val exists : Omod.fpath -> (bool, string) Pervasives.result       val delete : Omod.fpath -> (bool, string) Pervasives.result     end   module Cmd :     sig       type t = string list       val find : string list -> string option       val run : Omod.Private.Cmd.t -> (unit, int * string) Pervasives.result       val read :         Omod.Private.Cmd.t -> (string, int * string) Pervasives.result     end   module Top :     sig       val add_inc : string -> (unit, string) Pervasives.result       val rem_inc : string -> (unit, string) Pervasives.result       val load_ml : string -> (unit, string) Pervasives.result       val load_obj : string -> (unit, string) Pervasives.result       val is_nat : unit -> bool       module type TOPDIRS =         sig           val dir_directory : string -> unit           val dir_remove_directory : string -> unit           val dir_use : Format.formatter -> string -> unit           val dir_load : Format.formatter -> string -> unit         end       val set_topdirs :         is_nat:bool -> (module Omod.Private.Top.TOPDIRS-> unit     end end