sig
  val nop : '-> unit
  external id : '-> 'a = "%identity"
  val adapt_filename : string -> string
  val max_cpt : int -> int -> int
  val number_to_color : int -> int
  exception Unregistered_function of string
  val mk_labeled_fun : string -> 'a
  val mk_fun : string -> ('-> 'b) Stdlib.ref
  val ( $ ) : ('-> 'c) -> ('-> 'b) -> '-> 'c
  val swap : ('-> '-> 'c) -> '-> '-> 'c
  val uncurry : ('-> '-> 'c) -> 'a * '-> 'c
  val iter_uncurry2 :
    (('-> '-> unit) -> '-> unit) -> ('a * '-> unit) -> '-> unit
  val as_singleton : 'a list -> 'a
  val last : 'a list -> 'a
  val filter_out : ('-> bool) -> 'a list -> 'a list
  val replace : ('-> '-> bool) -> '-> 'a list -> 'a list
  val filter_map : ('-> bool) -> ('-> 'b) -> 'a list -> 'b list
  val filter_map' : ('-> 'b) -> ('-> bool) -> 'a list -> 'b list
  val filter_map_opt : ('-> 'b option) -> 'a list -> 'b list
  val fold_map : ('-> '-> 'a * 'c) -> '-> 'b list -> 'a * 'c list
  val fold_map_opt :
    ('-> '-> 'a * 'c option) -> '-> 'b list -> 'a * 'c list
  val product_fold : ('-> '-> '-> 'a) -> '-> 'b list -> 'c list -> 'a
  val product : ('-> '-> 'c) -> 'a list -> 'b list -> 'c list
  val find_index : ('-> bool) -> 'a list -> int
  val list_compare : ('-> '-> int) -> 'a list -> 'a list -> int
  val list_of_opt : 'a option -> 'a list
  val opt_of_list : 'a list -> 'a option
  val find_opt : ('-> 'b option) -> 'a list -> 'b
  val iteri : (int -> '-> unit) -> 'a list -> unit
  val mapi : (int -> '-> 'b) -> 'a list -> 'b list
  val sort_unique : ('-> '-> int) -> 'a list -> 'a list
  val subsets : int -> 'a list -> 'a list list
  val list_first_n : int -> 'a list -> 'a list
  val list_slice : ?first:int -> ?last:int -> 'a list -> 'a list
  val array_exists : ('-> bool) -> 'a array -> bool
  val array_existsi : (int -> '-> bool) -> 'a array -> bool
  val has_some : 'a option -> bool
  val may : ('-> unit) -> 'a option -> unit
  val opt_conv : '-> 'a option -> 'a
  val opt_if : bool -> '-> 'a option
  val may_map : ('-> 'b) -> ?dft:'-> 'a option -> 'b
  val opt_map : ('-> 'b) -> 'a option -> 'b option
  val opt_fold : ('-> '-> 'b) -> 'a option -> '-> 'b
  val merge_opt :
    ('-> '-> '-> 'b) -> '-> 'b option -> 'b option -> 'b option
  val opt_bind : ('-> 'b option) -> 'a option -> 'b option
  val opt_filter : ('-> bool) -> 'a option -> 'a option
  val the : ?exn:exn -> 'a option -> 'a
  val find_or_none : ('-> 'b) -> '-> 'b option
  val opt_equal : ('-> '-> bool) -> 'a option -> 'a option -> bool
  val opt_compare : ('-> '-> int) -> 'a option -> 'a option -> int
  val opt_hash : ('-> int) -> 'a option -> int
  val xor : bool -> bool -> bool
  val string_prefix : ?strict:bool -> string -> string -> bool
  val string_del_prefix : ?strict:bool -> string -> string -> string option
  val string_suffix : ?strict:bool -> string -> string -> bool
  val string_del_suffix : ?strict:bool -> string -> string -> string option
  val string_split : string -> int -> string * string
  val make_unique_name :
    (string -> bool) -> ?sep:string -> ?start:int -> string -> int * string
  val strip_underscore : string -> string
  val html_escape : string -> string
  val format_string_of_stag : Stdlib.Format.stag -> string
  external address_of_value : '-> int = "address_of_value" [@@noalloc]
  val try_finally : finally:(unit -> unit) -> ('-> 'b) -> '-> 'b
  val mkdir : ?parents:bool -> string -> Unix.file_perm -> unit
  val safe_at_exit : (unit -> unit) -> unit
  val cleanup_at_exit : string -> unit
  exception Temp_file_error of string
  val temp_file_cleanup_at_exit : ?debug:bool -> string -> string -> string
  val temp_dir_cleanup_at_exit : ?debug:bool -> string -> string
  val safe_remove : string -> unit
  val safe_remove_dir : string -> unit
  external compare_basic : '-> '-> int = "%compare"
  val compare_ignore_case : string -> string -> int
end