functor (X : HASHABLE->   sig     type key = X.t     type 'a t     val create : int -> 'a t     val mem : 'a t -> key -> bool     val find : 'a t -> key -> 'a option     val find_exn : 'a t -> key -> 'a     val get : key -> 'a t -> 'a option     val get_exn : key -> 'a t -> 'a     val add : 'a t -> key -> '-> unit     val remove : 'a t -> key -> unit     val size : 'a t -> int     val of_list : (key * 'a) list -> 'a t     val to_list : 'a t -> (key * 'a) list     val of_seq : (key * 'a) sequence -> 'a t     val to_seq : 'a t -> (key * 'a) sequence     val keys : 'a t -> key sequence     val values : 'a t -> 'a sequence   end