sig   type key   type 'a t   val create : int -> 'a t   val clear : 'a t -> unit   val reset : 'a t -> unit   val copy : 'a t -> 'a t   val add : 'a t -> key -> '-> unit   val remove : 'a t -> key -> unit   val find : 'a t -> key -> 'a   val find_all : 'a t -> key -> 'a list   val replace : 'a t -> key -> '-> unit   val mem : 'a t -> key -> bool   val iter : (key -> '-> unit) -> 'a t -> unit   val filter_map_inplace : (key -> '-> 'a option) -> 'a t -> unit   val fold : (key -> '-> '-> 'b) -> 'a t -> '-> 'b   val length : 'a t -> int   val stats : 'a t -> Hashtbl.statistics   val get : 'a t -> key -> 'a option   val get_or : 'a t -> key -> default:'-> 'a   val add_list : 'a list t -> key -> '-> unit   val incr : ?by:int -> int t -> key -> unit   val decr : ?by:int -> int t -> key -> unit   val keys : 'a t -> key CCHashtbl.sequence   val values : 'a t -> 'CCHashtbl.sequence   val keys_list : 'a t -> key list   val values_list : 'a t -> 'a list   val map_list : (key -> '-> 'b) -> 'a t -> 'b list   val to_seq : 'a t -> (key * 'a) CCHashtbl.sequence   val of_seq : (key * 'a) CCHashtbl.sequence -> 'a t   val add_seq : 'a t -> (key * 'a) CCHashtbl.sequence -> unit   val add_seq_count : int t -> key CCHashtbl.sequence -> unit   val of_seq_count : key CCHashtbl.sequence -> int t   val to_list : 'a t -> (key * 'a) list   val of_list : (key * 'a) list -> 'a t   val update : 'a t -> f:(key -> 'a option -> 'a option) -> k:key -> unit   val get_or_add : 'a t -> f:(key -> 'a) -> k:key -> 'a   val print :     key CCHashtbl.printer -> 'CCHashtbl.printer -> 'a t CCHashtbl.printer end