module type Key = Hashtbl2.Keyinclude sig ... endval sexp_of_t : ('key1 ‑> Base.Sexp.t) ‑> ('key2 ‑> Base.Sexp.t) ‑> ('data ‑> Base.Sexp.t) ‑> ('key1, 'key2, 'data) t ‑> Base.Sexp.tinclude Core.Invariant.S3 with type (a, b, c) t := (a, b, c) tval invariant : 'a Base__.Invariant_intf.inv ‑> 'b Base__.Invariant_intf.inv ‑> 'c Base__.Invariant_intf.inv ‑> ('a, 'b, 'c) t Base__.Invariant_intf.invval clear : (_, _, _) t ‑> unitval add_exn : ('key1, 'key2, 'data) t ‑> 'key1 ‑> 'key2 ‑> 'data ‑> unitval set : ('key1, 'key2, 'data) t ‑> 'key1 ‑> 'key2 ‑> 'data ‑> unitval find : ('key1, 'key2, 'data) t ‑> 'key1 ‑> 'key2 ‑> 'data optionval mem : ('key1, 'key2, 'data) t ‑> 'key1 ‑> 'key2 ‑> boolval mem1 : ('key1, 'key2, 'data) t ‑> 'key1 ‑> boolval mem2 : ('key1, 'key2, 'data) t ‑> 'key2 ‑> boolval iter : ('key1, 'key2, 'data) t ‑> f:('key1 ‑> 'key2 ‑> 'data ‑> unit) ‑> unitval iter1 : ('key1, 'key2, 'data) t ‑> f:('key1 ‑> ('key2, 'data) Core.Hashtbl.t ‑> unit) ‑> unitval iter2 : ('key1, 'key2, 'data) t ‑> f:('key2 ‑> ('key1, 'data) Core.Hashtbl.t ‑> unit) ‑> unitval find1 : ('key1, 'key2, 'data) t ‑> 'key1 ‑> ('key2, 'data) Core.Hashtbl.t optionval find2 : ('key1, 'key2, 'data) t ‑> 'key2 ‑> ('key1, 'data) Core.Hashtbl.t optionval find1_iter2 : ('key1, 'key2, 'data) t ‑> 'key1 ‑> f:('key2 ‑> 'data ‑> unit) ‑> unitval find2_iter1 : ('key1, 'key2, 'data) t ‑> 'key2 ‑> f:('key1 ‑> 'data ‑> unit) ‑> unitval remove_all1 : ('key1, _, _) t ‑> 'key1 ‑> unitval remove_exn : ('key1, 'key2, _) t ‑> 'key1 ‑> 'key2 ‑> unit