module General:sig..end
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'astream ='a head Lazy.t
type 'a head = 
| | 
Nil | 
| | 
Cons of  | 
val length : 'a stream -> int
val foldr : ('a -> 'b -> 'b) -> 'a stream -> 'b -> 'b