sig
  type 'a t
  val create : unit -> 'Generator.Generator.t
  val clear : 'Generator.Generator.t -> unit
  val length : 'Generator.Generator.t -> int
  val remove : 'Generator.Generator.t -> int -> unit
  val put : 'Generator.Generator.t -> '-> int -> int -> unit
  val get : 'Generator.Generator.t -> int -> ('a * int * int * int) list
end