sig
type 'a t = 'a CCLazy_list.node lazy_t
and 'a node = Nil | Cons of 'a * 'a CCLazy_list.t
val empty : 'a CCLazy_list.t
val return : 'a -> 'a CCLazy_list.t
val is_empty : 'a CCLazy_list.t -> bool
val length : 'a CCLazy_list.t -> int
val cons : 'a -> 'a CCLazy_list.t -> 'a CCLazy_list.t
val head : 'a CCLazy_list.t -> ('a * 'a CCLazy_list.t) option
val map : f:('a -> 'b) -> 'a CCLazy_list.t -> 'b CCLazy_list.t
val filter : f:('a -> bool) -> 'a CCLazy_list.t -> 'a CCLazy_list.t
val take : int -> 'a CCLazy_list.t -> 'a CCLazy_list.t
val append : 'a CCLazy_list.t -> 'a CCLazy_list.t -> 'a CCLazy_list.t
val flat_map :
f:('a -> 'b CCLazy_list.t) -> 'a CCLazy_list.t -> 'b CCLazy_list.t
module Infix :
sig
val ( >|= ) : 'a CCLazy_list.t -> ('a -> 'b) -> 'b CCLazy_list.t
val ( >>= ) :
'a CCLazy_list.t -> ('a -> 'b CCLazy_list.t) -> 'b CCLazy_list.t
end
val ( >|= ) : 'a t -> ('a -> 'b) -> 'b t
val ( >>= ) : 'a t -> ('a -> 'b t) -> 'b t
type 'a gen = unit -> 'a option
val of_gen : 'a CCLazy_list.gen -> 'a CCLazy_list.t
val of_list : 'a list -> 'a CCLazy_list.t
val to_list : 'a CCLazy_list.t -> 'a list
val to_list_rev : 'a CCLazy_list.t -> 'a list
val to_gen : 'a CCLazy_list.t -> 'a CCLazy_list.gen
end