sig
val head : ?n:int -> 'a list -> 'a list
val tail : ?i:int -> 'a list -> 'a list
val substract : 'a list -> 'a list -> 'a list
val subset : 'a list -> 'a list -> bool
val eqset : 'a list -> 'a list -> bool
val intersection : 'a list -> 'a list -> 'a list
val foreach : 'a list -> ('a -> unit) -> unit
val uniq : 'a list -> 'a list
val range : int -> int -> int list
val interval : int -> int -> int list
val indexes : 'a list -> int list
val asFunction : int list -> int -> int
val select : 'a list -> int list -> 'a list
val rmindex : 'a list -> int -> 'a list
val indexSuchThat : ('a -> bool) -> 'a list -> int option
val indexOf : 'a -> 'a list -> int option
val firstIndexOf : 'a -> 'a list -> int option
val lastIndexOf : 'a -> 'a list -> int option
val shuffle : 'a list -> 'a list
val permute : (int -> int) -> 'a list -> 'a list
val shuffler : 'a list -> int -> int
val shuffleIndexes : 'a list -> int list
val big : ('a -> 'a -> 'a) -> 'a list -> 'a
val max : 'a list -> 'a
val min : 'a list -> 'a
val transpose : 'a list list -> 'a list list
end