`sig
val take : int -> 'a list -> 'a list
val drop : int -> 'a list -> 'a list
val uniq : ('a -> 'a -> int) -> 'a list -> 'a list
val weed : ('a -> 'a -> int) -> 'a list -> 'a list
type 'a stream = 'a CamlinternalMenhirLib.General.head Stdlib.Lazy.t
and 'a head = Nil | Cons of 'a * 'a CamlinternalMenhirLib.General.stream
val length : 'a CamlinternalMenhirLib.General.stream -> int
val foldr :
('a -> 'b -> 'b) -> 'a CamlinternalMenhirLib.General.stream -> 'b -> 'b
end`