# Module Std.Hashtbl2_pair

    module Hashtbl2_pair: Hashtbl2_pair

    module type Key = Hashtbl2.Key

    type ('key1, 'key2, 'data) t

    include Invariant.S3

    val clear : ('a, 'b, 'c) t -> unit

    val add_exn : ('key1, 'key2, 'data) t -> 'key1 -> 'key2 -> 'data -> unit

    val set : ('key1, 'key2, 'data) t -> 'key1 -> 'key2 -> 'data -> unit

    val find : ('key1, 'key2, 'data) t -> 'key1 -> 'key2 -> 'data option

    val mem : ('key1, 'key2, 'data) t -> 'key1 -> 'key2 -> bool

    val mem1 : ('key1, 'key2, 'data) t -> 'key1 -> bool

    val mem2 : ('key1, 'key2, 'data) t -> 'key2 -> bool

    val iter : ('key1, 'key2, 'data) t ->
           f:('key1 -> 'key2 -> 'data -> unit) -> unit

    val find1 : ('key1, 'key2, 'data) t ->
           'key1 -> ('key2, 'data) Core.Std.Hashtbl.t option

    val find2 : ('key1, 'key2, 'data) t ->
           'key2 -> ('key1, 'data) Core.Std.Hashtbl.t option

    val find1_iter2 : ('key1, 'key2, 'data) t ->
           'key1 -> f:('key2 -> 'data -> unit) -> unit

    val find2_iter1 : ('key1, 'key2, 'data) t ->
           'key2 -> f:('key1 -> 'data -> unit) -> unit

    val remove_all1 : ('key1, 'a, 'b) t -> 'key1 -> unit

    val remove_exn : ('key1, 'key2, 'a) t -> 'key1 -> 'key2 -> unit

    module Make: functor (Key1 : Key) -> functor (Key2 : Key) -> sig .. end

    val sexp_of_t : ('key1 -> Sexplib.Sexp.t) ->
           ('key2 -> Sexplib.Sexp.t) ->
           ('data -> Sexplib.Sexp.t) ->
           ('key1, 'key2, 'data) t -> Sexplib.Sexp.t