sig
  val fatal_error : string -> 'a
  exception Fatal_error
  val try_finally : (unit -> 'a) -> (unit -> unit) -> 'a
  val map_end : ('-> 'b) -> 'a list -> 'b list -> 'b list
  val map_left_right : ('-> 'b) -> 'a list -> 'b list
  val for_all2 : ('-> '-> bool) -> 'a list -> 'b list -> bool
  val replicate_list : '-> int -> 'a list
  val list_remove : '-> 'a list -> 'a list
  val split_last : 'a list -> 'a list * 'a
  val samelist : ('-> '-> bool) -> 'a list -> 'a list -> bool
  val may : ('-> unit) -> 'a option -> unit
  val may_map : ('-> 'b) -> 'a option -> 'b option
  val find_in_path : string list -> string -> string
  val find_in_path_uncap : string list -> string -> string
  val remove_file : string -> unit
  val expand_directory : string -> string -> string
  val create_hashtable : int -> ('a * 'b) list -> ('a, 'b) Hashtbl.t
  val copy_file : Pervasives.in_channel -> Pervasives.out_channel -> unit
  val copy_file_chunk :
    Pervasives.in_channel -> Pervasives.out_channel -> int -> unit
  val string_of_file : Pervasives.in_channel -> string
  val log2 : int -> int
  val align : int -> int -> int
  val no_overflow_add : int -> int -> bool
  val no_overflow_sub : int -> int -> bool
  val no_overflow_lsl : int -> bool
  val chop_extension_if_any : string -> string
  val chop_extensions : string -> string
  val search_substring : string -> string -> int -> int
  val rev_split_words : string -> string list
  val get_ref : 'a list Pervasives.ref -> 'a list
  val fst3 : 'a * 'b * '-> 'a
  val snd3 : 'a * 'b * '-> 'b
  val thd3 : 'a * 'b * '-> 'c
  val fst4 : 'a * 'b * 'c * '-> 'a
  val snd4 : 'a * 'b * 'c * '-> 'b
  val thd4 : 'a * 'b * 'c * '-> 'c
  val for4 : 'a * 'b * 'c * '-> 'd
  module LongString :
    sig
      type t = bytes array
      val create : int -> Misc.LongString.t
      val length : Misc.LongString.t -> int
      val get : Misc.LongString.t -> int -> char
      val set : Misc.LongString.t -> int -> char -> unit
      val blit :
        Misc.LongString.t -> int -> Misc.LongString.t -> int -> int -> unit
      val output :
        Pervasives.out_channel -> Misc.LongString.t -> int -> int -> unit
      val unsafe_blit_to_bytes :
        Misc.LongString.t -> int -> bytes -> int -> int -> unit
      val input_bytes : Pervasives.in_channel -> int -> Misc.LongString.t
    end
  val edit_distance : string -> string -> int -> int option
  val split : string -> char -> string list
  val cut_at : string -> char -> string * string
end