functor (H : HashedType->   sig     type key = H.t     type 'a t     val empty : unit -> 'a t     val create : int -> 'a t     val is_empty : 'a t -> bool     val find : 'a t -> key -> 'a     val get_exn : key -> 'a t -> 'a     val get : key -> 'a t -> 'a option     val mem : 'a t -> key -> bool     val length : 'a t -> int     val add : 'a t -> key -> '-> 'a t     val replace : 'a t -> key -> '-> 'a t     val update : 'a t -> key -> ('a option -> 'a option) -> 'a t     val remove : 'a t -> key -> 'a t     val copy : 'a t -> 'a t     val merge :       f:(key ->          [ `Both of 'a * '| `Left of '| `Right of 'b ] -> 'c option) ->       'a t -> 'b t -> 'c t     val iter : 'a t -> (key -> '-> unit) -> unit     val fold : ('-> key -> '-> 'b) -> '-> 'a t -> 'b     val map : (key -> '-> 'b) -> 'a t -> 'b t     val filter : (key -> '-> bool) -> 'a t -> 'a t     val filter_map : (key -> '-> 'b option) -> 'a t -> 'b t     val for_all : (key -> '-> bool) -> 'a t -> bool     val exists : (key -> '-> bool) -> 'a t -> bool     val of_seq : (key * 'a) sequence -> 'a t     val of_list : (key * 'a) list -> 'a t     val add_seq : 'a t -> (key * 'a) sequence -> 'a t     val add_list : 'a t -> (key * 'a) list -> 'a t     val to_seq : 'a t -> (key * 'a) sequence     val to_list : 'a t -> (key * 'a) list     val equal : 'a equal -> 'a t equal     val pp :       ?sep:string ->       ?arrow:string -> key printer -> 'a printer -> 'a t printer     val stats : 'a t -> Hashtbl.statistics   end