sig
  val inter : 'a list -> 'a list -> 'a list
  val diff : 'a list -> 'a list -> 'a list
  val classify :
    ?equal:('-> '-> bool) ->
    f:('-> 'a) -> 'b list -> ('a * 'b 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
end