val int_equal : int -> int -> bool
val int_compare : int -> int -> int
module type Pp = sig ... end
val pp_print_pair : open_b:(Stdlib.Format.formatter -> unit -> unit) -> first:(Stdlib.Format.formatter -> unit) -> last:(Stdlib.Format.formatter -> unit) -> sep:(Stdlib.Format.formatter -> unit) -> (Stdlib.Format.formatter -> 'a -> unit) -> (Stdlib.Format.formatter -> 'b -> unit) -> Stdlib.Format.formatter -> ('a * 'b) -> unit
module M_opt : functor (M_lib : Stdlib.Map.S) -> functor (P : Pp with type t = M_lib.key) -> sig ... end
module S_opt : functor (S_lib : Stdlib.Set.S) -> functor (P : Pp with type t = S_lib.elt) -> sig ... end
module M_int : sig ... end
module H_int : sig ... end
val safe : 'a option -> 'a
val pair_compare : ('a -> 'b -> int) -> ('c -> 'd -> int) -> ('a * 'c) -> ('b * 'd) -> int
val ints_compare : (int * int) -> (int * int) -> int
val string_of_ints : int -> int -> string
val opt_equal : ('a -> 'b -> bool) -> 'a option -> 'b option -> bool
val flip : ('a -> 'b -> 'c) -> 'b -> 'a -> 'c
val flip2 : ('a -> 'b -> 'c -> 'd) -> 'a -> 'c -> 'b -> 'd
val list_equal : ('a -> 'b -> bool) -> 'a list -> 'b list -> bool
val parse_lines : string -> string list
val remove_block_delims : string -> string
val pp_list : Stdlib.Format.formatter -> (Stdlib.Format.formatter -> unit) -> (Stdlib.Format.formatter -> 'a -> unit) -> (Stdlib.Format.formatter -> unit -> unit) -> 'a list -> unit
val list_of_rows : 'a array array -> 'a list list
val list_of_cols : 'a array array -> 'a list list
val fold_matrix : 'a array array -> ('b -> int -> int -> 'a -> 'b) -> 'b -> 'b
val is_square_matrix : 'a array array -> bool
val list_of_pair : ('a * 'a) -> 'a list
val list_n : 'a list -> int -> (int -> 'a) -> 'a list
val cartesian : 'a list -> 'b list -> ('a * 'b) list