sig   type 'a sequence = ('-> unit) -> unit   type 'a gen = unit -> 'a option   type 'a equal = '-> '-> bool   type 'a ord = '-> '-> int   type 'a printer = Format.formatter -> '-> unit   type 'a t = unit -> [ `Cons of 'a * 'CCKList.t | `Nil ]   val nil : 'CCKList.t   val empty : 'CCKList.t   val cons : '-> 'CCKList.t -> 'CCKList.t   val singleton : '-> 'CCKList.t   val repeat : ?n:int -> '-> 'CCKList.t   val cycle : 'CCKList.t -> 'CCKList.t   val unfold : ('-> ('a * 'b) option) -> '-> 'CCKList.t   val is_empty : 'CCKList.t -> bool   val head : 'CCKList.t -> 'a option   val head_exn : 'CCKList.t -> 'a   val tail : 'CCKList.t -> 'CCKList.t option   val tail_exn : 'CCKList.t -> 'CCKList.t   val equal : 'CCKList.equal -> 'CCKList.t CCKList.equal   val compare : 'CCKList.ord -> 'CCKList.t CCKList.ord   val fold : ('-> '-> 'a) -> '-> 'CCKList.t -> 'a   val iter : ('-> unit) -> 'CCKList.t -> unit   val iteri : (int -> '-> unit) -> 'CCKList.t -> unit   val length : 'CCKList.t -> int   val take : int -> 'CCKList.t -> 'CCKList.t   val take_while : ('-> bool) -> 'CCKList.t -> 'CCKList.t   val drop : int -> 'CCKList.t -> 'CCKList.t   val drop_while : ('-> bool) -> 'CCKList.t -> 'CCKList.t   val map : ('-> 'b) -> 'CCKList.t -> 'CCKList.t   val mapi : (int -> '-> 'b) -> 'CCKList.t -> 'CCKList.t   val fmap : ('-> 'b option) -> 'CCKList.t -> 'CCKList.t   val filter : ('-> bool) -> 'CCKList.t -> 'CCKList.t   val append : 'CCKList.t -> 'CCKList.t -> 'CCKList.t   val product_with :     ('-> '-> 'c) -> 'CCKList.t -> 'CCKList.t -> 'CCKList.t   val product : 'CCKList.t -> 'CCKList.t -> ('a * 'b) CCKList.t   val group : 'CCKList.equal -> 'CCKList.t -> 'CCKList.t CCKList.t   val uniq : 'CCKList.equal -> 'CCKList.t -> 'CCKList.t   val flat_map : ('-> 'CCKList.t) -> 'CCKList.t -> 'CCKList.t   val filter_map : ('-> 'b option) -> 'CCKList.t -> 'CCKList.t   val flatten : 'CCKList.t CCKList.t -> 'CCKList.t   val range : int -> int -> int CCKList.t   val ( -- ) : int -> int -> int CCKList.t   val ( --^ ) : int -> int -> int CCKList.t   val fold2 :     ('acc -> '-> '-> 'acc) ->     'acc -> 'CCKList.t -> 'CCKList.t -> 'acc   val map2 : ('-> '-> 'c) -> 'CCKList.t -> 'CCKList.t -> 'CCKList.t   val iter2 : ('-> '-> unit) -> 'CCKList.t -> 'CCKList.t -> unit   val for_all2 : ('-> '-> bool) -> 'CCKList.t -> 'CCKList.t -> bool   val exists2 : ('-> '-> bool) -> 'CCKList.t -> 'CCKList.t -> bool   val merge : 'CCKList.ord -> 'CCKList.t -> 'CCKList.t -> 'CCKList.t   val zip : 'CCKList.t -> 'CCKList.t -> ('a * 'b) CCKList.t   val unzip : ('a * 'b) CCKList.t -> 'CCKList.t * 'CCKList.t   val sort : ?cmp:'CCKList.ord -> 'CCKList.t -> 'CCKList.t   val sort_uniq : ?cmp:'CCKList.ord -> 'CCKList.t -> 'CCKList.t   val memoize : 'CCKList.t -> 'CCKList.t   val interleave : 'CCKList.t -> 'CCKList.t -> 'CCKList.t   val fair_flat_map : ('-> 'CCKList.t) -> 'CCKList.t -> 'CCKList.t   val fair_app : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t   val return : '-> 'CCKList.t   val pure : '-> 'CCKList.t   val ( >>= ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t   val ( >|= ) : 'CCKList.t -> ('-> 'b) -> 'CCKList.t   val ( <*> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t   val ( >>- ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t   val ( <.> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t   module Infix :     sig       val ( >>= ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t       val ( >|= ) : 'CCKList.t -> ('-> 'b) -> 'CCKList.t       val ( <*> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t       val ( >>- ) : 'CCKList.t -> ('-> 'CCKList.t) -> 'CCKList.t       val ( <.> ) : ('-> 'b) CCKList.t -> 'CCKList.t -> 'CCKList.t       val ( -- ) : int -> int -> int CCKList.t       val ( --^ ) : int -> int -> int CCKList.t     end   module type MONAD =     sig       type 'a t       val return : '-> 'CCKList.MONAD.t       val ( >>= ) :         'CCKList.MONAD.t ->         ('-> 'CCKList.MONAD.t) -> 'CCKList.MONAD.t     end   module Traverse :     functor (M : MONAD->       sig         val sequence_m : 'M.t CCKList.t -> 'CCKList.t M.t         val fold_m : ('-> '-> 'M.t) -> '-> 'CCKList.t -> 'M.t         val map_m : ('-> 'M.t) -> 'CCKList.t -> 'CCKList.t M.t       end   val of_list : 'a list -> 'CCKList.t   val to_list : 'CCKList.t -> 'a list   val of_array : 'a array -> 'CCKList.t   val to_array : 'CCKList.t -> 'a array   val to_rev_list : 'CCKList.t -> 'a list   val to_seq : 'CCKList.t -> 'CCKList.sequence   val to_gen : 'CCKList.t -> 'CCKList.gen   val of_gen : 'CCKList.gen -> 'CCKList.t   val pp : ?sep:string -> 'CCKList.printer -> 'CCKList.t CCKList.printer end