sig type ('k1, 'k2, 'd) t val make : 'k1 -> 'k2 -> 'd -> ('k1, 'k2, 'd) Ephemeron.K2.t val query : ('k1, 'k2, 'd) Ephemeron.K2.t -> 'k1 -> 'k2 -> 'd option module Make : functor (H1 : Hashtbl.HashedType) (H2 : Hashtbl.HashedType) -> sig type key = H1.t * H2.t type !'a t val create : int -> 'a t val clear : 'a t -> unit val reset : 'a t -> unit val copy : 'a t -> 'a t val add : 'a t -> key -> 'a -> unit val remove : 'a t -> key -> unit val find : 'a t -> key -> 'a val find_opt : 'a t -> key -> 'a option val find_all : 'a t -> key -> 'a list val replace : 'a t -> key -> 'a -> unit val mem : 'a t -> key -> bool val length : 'a t -> int val stats : 'a t -> Hashtbl.statistics val add_seq : 'a t -> (key * 'a) Seq.t -> unit val replace_seq : 'a t -> (key * 'a) Seq.t -> unit val of_seq : (key * 'a) Seq.t -> 'a t val clean : 'a t -> unit val stats_alive : 'a t -> Hashtbl.statistics end module MakeSeeded : functor (H1 : Hashtbl.SeededHashedType) (H2 : Hashtbl.SeededHashedType) -> sig type key = H1.t * H2.t type !'a t val create : ?random:bool -> int -> 'a t val clear : 'a t -> unit val reset : 'a t -> unit val copy : 'a t -> 'a t val add : 'a t -> key -> 'a -> unit val remove : 'a t -> key -> unit val find : 'a t -> key -> 'a val find_opt : 'a t -> key -> 'a option val find_all : 'a t -> key -> 'a list val replace : 'a t -> key -> 'a -> unit val mem : 'a t -> key -> bool val length : 'a t -> int val stats : 'a t -> Hashtbl.statistics val add_seq : 'a t -> (key * 'a) Seq.t -> unit val replace_seq : 'a t -> (key * 'a) Seq.t -> unit val of_seq : (key * 'a) Seq.t -> 'a t val clean : 'a t -> unit val stats_alive : 'a t -> Hashtbl.statistics end module Bucket : sig type ('k1, 'k2, 'd) t val make : unit -> ('k1, 'k2, 'd) Ephemeron.K2.Bucket.t val add : ('k1, 'k2, 'd) Ephemeron.K2.Bucket.t -> 'k1 -> 'k2 -> 'd -> unit val remove : ('k1, 'k2, 'd) Ephemeron.K2.Bucket.t -> 'k1 -> 'k2 -> unit val find : ('k1, 'k2, 'd) Ephemeron.K2.Bucket.t -> 'k1 -> 'k2 -> 'd option val length : ('k1, 'k2, 'd) Ephemeron.K2.Bucket.t -> int val clear : ('k1, 'k2, 'd) Ephemeron.K2.Bucket.t -> unit end end