Module Base.Hashable

module type Key = Key
module type Hashable = sig ... end
type 'a t = {
  1. hash : 'a -> int;
  2. compare : 'a -> 'a -> int;
  3. sexp_of_t : 'a -> Sexp.t;
}
val equal : 'a t -> 'a t -> bool
val poly : 'a t
val of_key : (module Key with type t = 'a) -> 'a t
val to_key : 'a t -> (module Key with type t = 'a)
val hash_param : int -> int -> 'a -> int
val hash : 'a -> int