sig
  val of_option : 'a option -> 'a list
  val set_inter : 'a list -> 'a list -> 'a list
  val set_diff : 'a list -> 'a list -> 'a list
  val classify :
    ?equal:('-> '-> bool) ->
    f:('-> 'b) -> 'a list -> ('b * 'a list) list
  val take_while : 'a list -> ('-> bool) -> 'a list
  val split_while : 'a list -> ('-> bool) -> 'a list * 'a list
  val intersperse : 'a list -> '-> 'a list
  val enumerate_from : int -> 'a list -> ('a * int) list
  val fold_left_term :
    'a list ->
    f:('-> '-> [ `Continue of '| `Final of 'b ]) -> init:'-> 'b
  val max : ?cmp:('-> '-> int) -> 'a list -> 'a option
  val min : ?cmp:('-> '-> int) -> 'a list -> 'a option
  val max_exn : ?cmp:('-> '-> int) -> 'a list -> 'a
  val min_exn : ?cmp:('-> '-> int) -> 'a list -> 'a
  val lcs : 'a list -> 'a list -> 'a list
  val number : 'a list -> ('a * int) list
  val multimerge : 'a list list -> 'a list
  val multimerge_unique : 'a list list -> 'a list
  val square : ?null:'-> ('k * 'v) list list -> 'k list * 'v list list
  val square_unique :
    ?null:'-> ('k * 'v) list list -> 'k list * 'v list list
  val equal : equal:('-> '-> bool) -> 'a list -> 'b list -> bool
  val compare : cmp:('-> '-> int) -> 'a list -> 'b list -> int
  val ounit_tests : unit -> OUnit.test
end