# Module Ephemeron.K2.Bucket

    module Bucket: sig .. end

    type ('k1, 'k2, 'd) t

A bucket is a mutable "list" of ephemerons.

    val make : unit -> ('k1, 'k2, 'd) t

Create a new bucket.

    val add : ('k1, 'k2, 'd) t -> 'k1 -> 'k2 -> 'd -> unit

Add an ephemeron to the bucket.

    val remove : ('k1, 'k2, 'd) t -> 'k1 -> 'k2 -> unit

`remove b k1 k2` removes from `b` the most-recently added ephemeron with keys `k1` and `k2`, or does nothing if there is no such ephemeron.

    val find : ('k1, 'k2, 'd) t -> 'k1 -> 'k2 -> 'd option

Returns the data of the most-recently added ephemeron with the given keys, or `None` if there is no such ephemeron.

    val length : ('k1, 'k2, 'd) t -> int

Returns an upper bound on the length of the bucket.

    val clear : ('k1, 'k2, 'd) t -> unit

Remove all ephemerons from the bucket.