sig
  type 'a t = 'a list
  val compare :
    ('a -> 'a -> int) ->
    'a Misc.Stdlib.List.t -> 'a Misc.Stdlib.List.t -> int
  val equal :
    ('a -> 'a -> bool) ->
    'a Misc.Stdlib.List.t -> 'a Misc.Stdlib.List.t -> bool
  val filter_map :
    ('a -> 'b option) -> 'a Misc.Stdlib.List.t -> 'b Misc.Stdlib.List.t
  val some_if_all_elements_are_some :
    'a option Misc.Stdlib.List.t -> 'a Misc.Stdlib.List.t option
  val map2_prefix :
    ('a -> 'b -> 'c) ->
    'a Misc.Stdlib.List.t ->
    'b Misc.Stdlib.List.t -> 'c Misc.Stdlib.List.t * 'b Misc.Stdlib.List.t
  val split_at :
    int ->
    'a Misc.Stdlib.List.t -> 'a Misc.Stdlib.List.t * 'a Misc.Stdlib.List.t
end