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