sig
  val const : '-> '-> 'a
  val const2 : '-> '-> '-> 'a
  val const3 : '-> '-> '-> '-> 'a
  val flip : ('-> '-> 'c) -> '-> '-> 'c
  val foldi : ('-> int -> 'a) -> '-> int -> int -> 'a
  val mapi : (int -> 'a) -> int -> int -> 'a list
  val iterf : (float -> unit) -> float -> float -> float -> unit
  exception FoldSkip
  val all_fn : ('-> bool) -> '-> '-> bool
  val any_fn : ('-> bool) -> '-> '-> bool
  val all2_fn : ('-> '-> bool) -> '-> '-> '-> bool
  val any2_fn : ('-> '-> bool) -> '-> '-> '-> bool
  type ('z, 'a, 'c) fold = ('-> '-> 'z) -> '-> '-> 'z
  val all : (bool, 'a, 'c) Util.fold -> ('-> bool) -> '-> bool
  val any : (bool, 'a, 'c) Util.fold -> ('-> bool) -> '-> bool
  type ('z, 'a, 'b, 'c, 'd) fold2 =
      ('-> '-> '-> 'z) -> '-> '-> '-> 'z
  val all2 :
    (bool, 'a, 'b, 'c, 'd) Util.fold2 ->
    ('-> '-> bool) -> '-> '-> bool
  val any2 :
    (bool, 'a, 'b, 'c, 'd) Util.fold2 ->
    ('-> '-> bool) -> '-> '-> bool
  type ('z, 'a, 'b, 'c) foldd =
      ('-> '-> 'z) -> ('-> '-> 'z) -> '-> '-> 'z
  val alld :
    (bool, 'a, 'b, 'c) Util.foldd ->
    ('-> bool) -> ('-> bool) -> '-> bool
  val anyd :
    (bool, 'a, 'b, 'c) Util.foldd ->
    ('-> bool) -> ('-> bool) -> '-> bool
  val ffalse : '-> bool
  val ttrue : '-> bool
  val iter_first : (('-> unit) -> 'b) -> ('-> 'c option) -> 'c
  type 'a cmptr
  type 'a compare = '-> '-> int
  val cmptr : ('-> 'b) -> 'Util.compare -> 'Util.cmptr
  val cmptr_direct : 'Util.compare -> 'Util.cmptr
  val cmp : 'Util.cmptr list -> 'Util.compare
  val cmp_lists : 'Util.cmptr list -> 'a list Util.compare
  val terminal_has_color : bool
  val ansi_color_tags : Stdlib.Format.formatter_stag_functions
  val get_home_dir : unit -> string
  val split_version : string -> (string * int) list
end