sig
  exception GotSignal of int
  val withTimeout : float -> (int -> 'a) -> ('-> 'a) -> '-> 'a
  val docHash :
    ?sep:string ->
    ('-> '-> Pretty.doc) -> unit -> ('a, 'b) Hashtbl.t -> Pretty.doc
  val hash_to_list : ('a, 'b) Hashtbl.t -> ('a * 'b) list
  val keys : ('a, 'b) Hashtbl.t -> 'a list
  val hash_copy_into : ('a, 'b) Hashtbl.t -> ('a, 'b) Hashtbl.t -> unit
  val anticompare : '-> '-> int
  val list_drop : int -> 'a list -> 'a list
  val list_droptail : int -> 'a list -> 'a list
  val list_span : ('-> bool) -> 'a list -> 'a list * 'a list
  val list_insert_by : ('-> '-> int) -> '-> 'a list -> 'a list
  val list_head_default : '-> 'a list -> 'a
  val list_iter3 :
    ('-> '-> '-> unit) -> 'a list -> 'b list -> 'c list -> unit
  val get_some_option_list : 'a option list -> 'a list
  val list_iteri : (int -> '-> unit) -> 'a list -> unit
  val list_mapi : (int -> '-> 'b) -> 'a list -> 'b list
  val list_fold_lefti : ('-> int -> '-> 'a) -> '-> 'b list -> 'a
  val int_range_list : int -> int -> int list
  val list_init : int -> (int -> 'a) -> 'a list
  val list_find_first : 'a list -> ('-> 'b option) -> 'b option
  val mapNoCopy : ('-> 'a) -> 'a list -> 'a list
  val mapNoCopyList : ('-> 'a list) -> 'a list -> 'a list
  val filterNoCopy : ('-> bool) -> 'a list -> 'a list
  val joinStrings : string -> string list -> string
  val hasPrefix : string -> string -> bool
  val restoreRef : ?deepCopy:('-> 'a) -> 'Pervasives.ref -> unit -> unit
  val restoreHash :
    ?deepCopy:('-> 'a) -> ('b, 'a) Hashtbl.t -> unit -> unit
  val restoreIntHash : ?deepCopy:('-> 'a) -> 'Inthash.t -> unit -> unit
  val restoreArray : ?deepCopy:('-> 'a) -> 'a array -> unit -> unit
  val runThunks : (unit -> unit) list -> unit -> unit
  val memoize : ('a, 'b) Hashtbl.t -> '-> ('-> 'b) -> 'b
  val findOrAdd : ('a, 'b) Hashtbl.t -> '-> ('-> 'b) -> 'b
  val tryFinally : ('-> 'b) -> ('b option -> unit) -> '-> 'b
  type registerInfo = {
    rName : string;
    rGroup : string;
    rVal : Pretty.doc;
    rOneLineVal : Pretty.doc option;
  }
  val valOf : 'a option -> 'a
  val fold_for : init:'-> lo:int -> hi:int -> (int -> '-> 'a) -> 'a
  module type STACK =
    sig
      type 'a t
      exception Empty
      val create : unit -> 'Util.STACK.t
      val push : '-> 'Util.STACK.t -> unit
      val pop : 'Util.STACK.t -> 'a
      val top : 'Util.STACK.t -> 'a
      val clear : 'Util.STACK.t -> unit
      val copy : 'Util.STACK.t -> 'Util.STACK.t
      val is_empty : 'Util.STACK.t -> bool
      val length : 'Util.STACK.t -> int
      val iter : ('-> unit) -> 'Util.STACK.t -> unit
    end
  module Stack : STACK
  type configData =
      ConfInt of int
    | ConfBool of bool
    | ConfFloat of float
    | ConfString of string
    | ConfList of Util.configData list
  val loadConfiguration : string -> unit
  val saveConfiguration : string -> unit
  val clearConfiguration : unit -> unit
  val setConfiguration : string -> Util.configData -> unit
  val findConfiguration : string -> Util.configData
  val findConfigurationInt : string -> int
  val useConfigurationInt : string -> (int -> unit) -> unit
  val findConfigurationBool : string -> bool
  val useConfigurationBool : string -> (bool -> unit) -> unit
  val findConfigurationString : string -> string
  val useConfigurationString : string -> (string -> unit) -> unit
  val findConfigurationList : string -> Util.configData list
  val useConfigurationList : string -> (Util.configData list -> unit) -> unit
  type symbol = int
  val symbolName : Util.symbol -> string
  val registerSymbolName : string -> Util.symbol
  val registerSymbolRange : int -> (int -> string) -> Util.symbol
  val newSymbol : string -> Util.symbol
  val resetSymbols : unit -> unit
  val snapshotSymbols : unit -> unit -> unit
  val dumpSymbols : unit -> unit
  module Int32Op :
    sig
      val ( <% ) : int32 -> int32 -> bool
      val ( <=% ) : int32 -> int32 -> bool
      val ( >% ) : int32 -> int32 -> bool
      val ( >=% ) : int32 -> int32 -> bool
      val ( <>% ) : int32 -> int32 -> bool
      val ( +% ) : int32 -> int32 -> int32
      val ( -% ) : int32 -> int32 -> int32
      val ( *% ) : int32 -> int32 -> int32
      val ( /% ) : int32 -> int32 -> int32
      val ( ~-% ) : int32 -> int32
      val ( <<% ) : int32 -> int32 -> int32
      val ( >>% ) : int32 -> int32 -> int32
      val ( >>>% ) : int32 -> int32 -> int32
      exception IntegerTooLarge
      val to_int : int32 -> int
    end
  val equals : '-> '-> bool
end