sig
  type 'a gen = unit -> 'a option
  type 'a clonable = < clone : 'GenMList.clonable; gen : 'GenMList.gen >
  type 'a t
  val of_gen : 'GenMList.gen -> 'GenMList.t
  val of_gen_lazy :
    ?max_chunk_size:int -> ?caching:bool -> 'GenMList.gen -> 'GenMList.t
  val to_gen : 'GenMList.t -> 'GenMList.gen
  val to_clonable : 'GenMList.t -> 'GenMList.clonable
end