sig
  type 'a t
  type key
  val create : int -> 'a WeakPlus.WEAKPLUS.t
  val resize : ?size:int -> 'a WeakPlus.WEAKPLUS.t -> unit
  val add : 'a WeakPlus.WEAKPLUS.t -> WeakPlus.WEAKPLUS.key -> 'a -> unit
  val remove : 'a WeakPlus.WEAKPLUS.t -> WeakPlus.WEAKPLUS.key -> unit
  val find' : 'a WeakPlus.WEAKPLUS.t -> WeakPlus.WEAKPLUS.key -> 'a option
  val find : 'a WeakPlus.WEAKPLUS.t -> WeakPlus.WEAKPLUS.key -> 'a
  val mem : 'a WeakPlus.WEAKPLUS.t -> WeakPlus.WEAKPLUS.key -> bool
  val count : 'a WeakPlus.WEAKPLUS.t -> int
  val iter :
    (WeakPlus.WEAKPLUS.key -> 'a -> unit) -> 'a WeakPlus.WEAKPLUS.t -> unit
end