functor (Key1 : Key) (Key2 : Key->
  sig
    type 'data t = (Key1.t, Key2.t, 'data) t
    val equal : 'Core.Std.Equal.equal -> 'a t Core.Std.Equal.equal
    val create : unit -> 'data Hashtbl2.t
    val sexp_of_t :
      ('data -> Sexplib.Sexp.t) -> 'data Hashtbl2.t -> Sexplib.Sexp.t
  end