sig
  val string_of_float0 : float -> string
  val string_of_list : ('-> string) -> 'a list -> string
  val opt_default : '-> 'a option -> 'a
  val dump_to_file : string -> string -> unit
  val list_remove : '-> 'a list -> 'a list
  val list_lassoc : '-> ('b * 'a) list -> 'b
  val index_of : '-> 'a list -> int
  val range : int -> int -> int list
  val rrange : int -> int -> int list
  val srange : int -> int -> PintTypes.ISet.t
  val hashtbl_filter_bindings :
    ('a, 'b) Hashtbl.t -> '-> ('-> bool) -> unit
  val string_apply : string -> string -> string list -> string
  val cross : 'a list list -> 'a list -> 'a list list
  val cross_list : 'a list list -> 'a list list
  exception Empty
  val cross_forward :
    ('a list -> 'b) * ('-> '-> 'b) * ('-> bool) -> 'a list list -> 'b
  val stream_permutations : 'a list -> 'a list Stream.t
  val smap_remove_keys :
    'PintTypes.SMap.t -> PintTypes.SSet.t -> 'PintTypes.SMap.t
  val smap_subset :
    ('-> '-> bool) -> 'PintTypes.SMap.t -> 'PintTypes.SMap.t -> bool
end