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