functor (X : Sig.HASHABLE) -> functor (Y : Sig.HASHABLE) -> sig type t = X.t * Y.t val hash : t -> int val equal : t -> t -> bool end