sig
  type 'a t
  type 'b injection
  val create : int -> 'CCMixtbl.t
  val create_inj : unit -> 'CCMixtbl.injection
  val get : inj:'CCMixtbl.injection -> 'CCMixtbl.t -> '-> 'b option
  val set : inj:'CCMixtbl.injection -> 'CCMixtbl.t -> '-> '-> unit
  val find : inj:'CCMixtbl.injection -> 'CCMixtbl.t -> '-> 'b
  val length : 'CCMixtbl.t -> int
  val clear : 'CCMixtbl.t -> unit
  val remove : 'CCMixtbl.t -> '-> unit
  val copy : 'CCMixtbl.t -> 'CCMixtbl.t
  val mem : inj:'CCMixtbl.injection -> 'CCMixtbl.t -> '-> bool
  val iter_keys : 'CCMixtbl.t -> ('-> unit) -> unit
  val fold_keys : 'CCMixtbl.t -> '-> ('-> '-> 'b) -> 'b
  type 'a sequence = ('-> unit) -> unit
  val keys_seq : 'CCMixtbl.t -> 'CCMixtbl.sequence
  val bindings_of :
    inj:'CCMixtbl.injection -> 'CCMixtbl.t -> ('a * 'b) CCMixtbl.sequence
  type value = Value : ('CCMixtbl.injection -> 'b option) -> CCMixtbl.value
  val bindings : 'CCMixtbl.t -> ('a * CCMixtbl.value) CCMixtbl.sequence
end