sig
val dp_print : bool Pervasives.ref
val dpr : string -> unit
val firstchar : string -> char option
val lastchar : string -> char option
val explode : string -> char list
val implode : char list -> string
val string_of_char : char -> string
val hd : 'a list -> 'a
val tl : 'a list -> 'a list
val rev : 'a list -> 'a list
val iter : ('a -> unit) -> 'a list -> unit
val iter2 : ('a -> 'b -> unit) -> 'a list -> 'b list -> unit
val iter3 :
('a -> 'b -> 'c -> unit) -> 'a list -> 'b list -> 'c list -> unit
val append : 'a list -> 'a list -> 'a list
val ( @ ) : 'a list -> 'a list -> 'a list
val flatten : 'a list list -> 'a list
val rev_map : ('a -> 'b) -> 'a list -> 'b list
val map : ('a -> 'b) -> 'a list -> 'b list
val map2 : ('a -> 'b -> 'c) -> 'a list -> 'b list -> 'c list
val split : ('a * 'b) list -> 'a list * 'b list
val split3 : ('a * 'b * 'c) list -> 'a list * 'b list * 'c list
val split8 :
('a * 'b * 'c * 'd * 'e * 'f * 'g * 'h) list ->
'a list * 'b list * 'c list * 'd list * 'e list * 'f list * 'g list *
'h list
val combine : 'a list -> 'b list -> ('a * 'b) list
val combine3 : 'a list -> 'b list -> 'c list -> ('a * 'b * 'c) list
val fold_left : ('a -> 'b -> 'a) -> 'a -> 'b list -> 'a
val fold_right : ('a -> 'b -> 'b) -> 'a list -> 'b -> 'b
val length : 'a list -> int
val sort : ('a -> 'a -> int) -> 'a list -> 'a list
val cumulative_sum : int -> int list -> int list
val lcount : ('a -> bool) -> 'a list -> int
val option_map : ('a -> 'b option) -> 'a list -> 'b list
val mem : 'a -> 'a list -> bool
val rev_map3 :
('a -> 'b -> 'c -> 'd) -> 'a list -> 'b list -> 'c list -> 'd list
val map3 :
('a -> 'b -> 'c -> 'd) -> 'a list -> 'b list -> 'c list -> 'd list
val rev_map4 :
('a -> 'b -> 'c -> 'd -> 'e) ->
'a list -> 'b list -> 'c list -> 'd list -> 'e list
val map4 :
('a -> 'b -> 'c -> 'd -> 'e) ->
'a list -> 'b list -> 'c list -> 'd list -> 'e list
val rev_map5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f) ->
'a list -> 'b list -> 'c list -> 'd list -> 'e list -> 'f list
val map5 :
('a -> 'b -> 'c -> 'd -> 'e -> 'f) ->
'a list -> 'b list -> 'c list -> 'd list -> 'e list -> 'f list
val take : 'a list -> int -> 'a list
val take' : int -> 'a list -> 'a list
val drop : 'a list -> int -> 'a list
val drop' : int -> 'a list -> 'a list
val takewhile : ('a -> bool) -> 'a list -> 'a list
val dropwhile : ('a -> bool) -> 'a list -> 'a list
val cleave : 'a list -> int -> 'a list * 'a list
val cleavewhile : ('a -> bool) -> 'a list -> 'a list * 'a list
val cleavewhile_unordered : ('a -> bool) -> 'a list -> 'a list * 'a list
val isolate : ('a -> bool) -> ('a -> bool) -> 'a list -> 'a list
val interleave : 'a -> 'a list -> 'a list
val interleave_lists : 'a list -> 'a list -> 'a list
val collate : ('a -> 'a -> int) -> 'a list -> 'a list list
val map_lol : ('a -> 'b) -> 'a list list -> 'b list list
val pairs : 'a list -> ('a * 'a) list
val mem' : 'a list -> 'a -> bool
val setify : 'a list -> 'a list
val setify_preserving_order : 'a list -> 'a list
val setminus : 'a list -> 'a list -> 'a list
val setminus_preserving_order : 'a list -> 'a list -> 'a list
val heads : 'a list list -> 'a list
val tails : 'a list list -> 'a list list
val zipn : 'a list list -> 'a list list
val couple : ('a -> 'a -> 'b) -> 'a list -> 'b list
val couple_ext : ('a -> 'a -> 'b) -> ('a -> 'b) -> 'a list -> 'b list
val couple_reduce : ('a -> 'a -> 'a) -> 'a list -> 'a
val pair : ('a -> 'a -> 'a) -> 'a list -> 'a list
val pair_ext : ('a -> 'a -> 'b) -> ('a -> 'b) -> 'a list -> 'b list
val pair_reduce : ('a -> 'a -> 'a) -> 'a list -> 'a
val keep : ('a -> bool) -> 'a list -> 'a list
val lose : ('a -> bool) -> 'a list -> 'a list
val many : 'a -> int -> 'a list
val manyunique : (unit -> 'a) -> int -> 'a list
val splitinto : int -> 'a list -> 'a list list
val splitat : int list -> 'a list -> 'a list list
val select : int -> 'a list -> 'a
val isnull : 'a list -> bool
val notnull : 'a list -> bool
val last : 'a list -> 'a
val all_but_last : 'a list -> 'a list
val extremes : 'a list -> 'a * 'a
val extremes_and_middle : 'a list -> 'a * 'a list * 'a
val ilist : int -> int -> int list
val ilist_null : int -> int -> int list
val ilist_fail_null : int -> int -> int list
val indx : 'a list -> int list
val indx0 : 'a list -> int list
val indxn : int -> 'a list -> int list
val drop_evens : 'a list -> 'a list
val really_drop_evens : 'a list -> 'a list
val drop_odds : 'a list -> 'a list
val tail_no_fail : 'a list -> 'a list
val ( @@ ) : 'a list -> 'a list -> 'a list
val replaceinlist : ('a -> bool) -> 'a -> 'a list -> 'a list
val index : ('a -> bool) -> 'a list -> int
val i32ofi : int -> int32
val i32toi : int32 -> int
val i32tof : int32 -> float
val i32add : int32 -> int32 -> int32
val i32sub : int32 -> int32 -> int32
val i32div : int32 -> int32 -> int32
val i32mul : int32 -> int32 -> int32
val lsr32 : int32 -> int -> int32
val lsl32 : int32 -> int -> int32
val lor32 : int32 -> int32 -> int32
val land32 : int32 -> int32 -> int32
val lxor32 : int32 -> int32 -> int32
val i32succ : int32 -> int32
val i32pred : int32 -> int32
val i32max : 'a -> 'a -> 'a
val i32min : 'a -> 'a -> 'a
val i64ofi : int -> int64
val i64toi : int64 -> int
val i64add : int64 -> int64 -> int64
val i64sub : int64 -> int64 -> int64
val i64mul : int64 -> int64 -> int64
val i64div : int64 -> int64 -> int64
val lsr64 : int64 -> int -> int64
val lsl64 : int64 -> int -> int64
val lor64 : int64 -> int64 -> int64
val i64succ : int64 -> int64
val i64pred : int64 -> int64
val i64max : 'a -> 'a -> 'a
val i64min : 'a -> 'a -> 'a
type 'a queue = 'a list * 'a list
val q_mk : 'a Utility.queue
val q_enq : 'a Utility.queue -> 'a -> 'a Utility.queue
val q_null : 'a Utility.queue -> bool
exception EmptyQueue
val q_hd : 'a Utility.queue -> 'a
val q_deq : 'a Utility.queue -> 'a Utility.queue
val q_len : 'a Utility.queue -> int
val list_of_q : 'a Utility.queue -> 'a list
val q_of_list : 'a list -> 'a Utility.queue
type bytestream
val mkstream : int -> Utility.bytestream
val stream_size : Utility.bytestream -> int
val fillstream : int -> Utility.bytestream -> unit
val print_stream : Utility.bytestream -> unit
val sget : Utility.bytestream -> int -> int
val sset : Utility.bytestream -> int -> int -> unit
val bytestream_sub : Utility.bytestream -> int -> int -> Utility.bytestream
val bytestream_of_string : string -> Utility.bytestream
val bytestream_of_list : int list -> Utility.bytestream
val bytestream_of_charlist : char list -> Utility.bytestream
val bytestream_of_arraylist : int array list -> Utility.bytestream
val stream_of_int_array : int array -> Utility.bytestream
val int_array_of_stream : Utility.bytestream -> int array
val int_array_of_string : string -> int array
val string_of_int_arrays : int array list -> string
val string_of_int_array : int array -> string
val string_of_bytestream : Utility.bytestream -> string
val charlist_of_bytestream : Utility.bytestream -> char list
val copystream : Utility.bytestream -> Utility.bytestream
val lookup : 'a -> ('a * 'b) list -> 'b option
val lookup_failnull : 'a -> ('a * 'b) list -> 'b
val add : 'a -> 'b -> ('a * 'b) list -> ('a * 'b) list
val replace : 'a -> 'b -> ('a * 'b) list -> ('a * 'b) list
val remove : 'a -> ('a * 'b) list -> ('a * 'b) list
val mergedict : ('a * 'b) list -> ('a * 'b) list -> ('a * 'b) list
val set : bool Pervasives.ref -> unit
val clear : bool Pervasives.ref -> unit
val flip : bool Pervasives.ref -> unit
val ( += ) : int Pervasives.ref -> int -> unit
val ( -= ) : int Pervasives.ref -> int -> unit
val ( /= ) : int Pervasives.ref -> int -> unit
val ( *= ) : int Pervasives.ref -> int -> unit
val ( +.= ) : float Pervasives.ref -> float -> unit
val ( -.= ) : float Pervasives.ref -> float -> unit
val ( /.= ) : float Pervasives.ref -> float -> unit
val ( *.= ) : float Pervasives.ref -> float -> unit
val ( =| ) : 'a list Pervasives.ref -> 'a -> unit
val ( =@ ) : 'a list Pervasives.ref -> 'a list -> unit
type vector = float * float
val mkvector : float * float -> float * float -> Utility.vector
val invert : Utility.vector -> Utility.vector
val offset_point : Utility.vector -> float * float -> Utility.vector
val perpendicular : 'a * float -> float * 'a
val veclength : Utility.vector -> float
val scalevectolength : float -> Utility.vector -> Utility.vector
val mkunitvector : float * float -> float * float -> Utility.vector
val between : float * float -> float * float -> float * float
val distance_between : float * float -> float * float -> float
val round : float -> float
val largest_pow2_divisible : int -> int
val pow2lt : int -> int
val pow2gt : int -> int
val log2of : int -> int
val pow : int -> int -> int
val compare_i : int -> int -> int
val min : int -> int -> int
val max : int -> int -> int
val fmin : float -> float -> float
val fmax : float -> float -> float
val fabs : float -> float
val even : int -> bool
val odd : int -> bool
val pi : float
val root2 : float
val rad_of_deg : float -> float
val deg_of_rad : float -> float
val some : 'a option -> bool
val none : 'a option -> bool
val unopt : 'a option -> 'a
val always : 'a -> bool
val never : 'a -> bool
val ( |&| ) : bool -> bool -> bool
val ident : 'a -> 'a
val array_iter2 : ('a -> 'b -> unit) -> 'a array -> 'b array -> unit
val array_map2 : ('a -> 'b -> 'c) -> 'a array -> 'b array -> 'c array
val megabytes : int -> int
val applyn : ('a -> 'a) -> int -> 'a -> 'a
type 'a tree = Lf | Br of 'a * 'a Utility.tree * 'a Utility.tree
val null_hash : unit -> ('a, 'b) Hashtbl.t
val tryfind : ('a, 'b) Hashtbl.t -> 'a -> 'b option
val list_of_hashtbl : ('a, 'b) Hashtbl.t -> ('a * 'b) list
val hashtable_of_dictionary : ('a * 'b) list -> ('a, 'b) Hashtbl.t
val tuple : 'a -> 'b -> 'a * 'b
val mkunit : ('a -> 'b) -> 'a -> unit -> 'b
val ( <| ) : ('a -> 'b) -> 'a -> 'b
val conspair : ('a * 'b) * ('a list * 'b list) -> 'a list * 'b list
val conspairopt :
('a option * 'b option) * ('a list * 'b list) -> 'a list * 'b list
val pairs_of_list : 'a list -> ('a * 'a) list
val until_exception : 'a -> (unit -> unit) -> 'a
val set_array : 'a array -> 'a -> unit
val do_return : (unit -> 'a) -> (unit -> 'b) -> 'a
val do_many : (unit -> unit) -> int -> unit
val isdigit : char -> bool
val toint : float -> int
val notpred : ('a -> bool) -> 'a -> bool
val eq : 'a -> 'a -> bool
val neq : 'a -> 'a -> bool
val rev_compare : 'a -> 'a -> int
val flprint : string -> unit
val swap : 'a array -> int -> int -> unit
type stream = { mutable pos : int; mutable data : Utility.bytestream; }
val sqr : float -> float
val safe_float : float -> float
val box_union :
int * int * int * int -> int * int * int * int -> int * int * int * int
val box_union_float :
float * float * float * float ->
float * float * float * float -> float * float * float * float
val box_overlap :
int ->
int ->
int -> int -> int -> int -> int -> int -> (int * int * int * int) option
val box_overlap_float :
float ->
float ->
float ->
float ->
float ->
float -> float -> float -> (float * float * float * float) option
val print_floats : float list -> unit
val print_ints : int list -> unit
val print_int32s : int32 list -> unit
val digest : string -> string
val slash : string
val leafnames_of_dir : string -> string list
val split_around : ('a -> bool) -> 'a list -> 'a list list
end