`sig val add : ('a, 'b) BatHashtbl.t -> key:'a -> data:'b -> unit val replace : ('a, 'b) BatHashtbl.t -> key:'a -> data:'b -> unit val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b) BatHashtbl.t -> unit val map : f:(key:'a -> data:'b -> 'c) -> ('a, 'b) BatHashtbl.t -> ('a, 'c) BatHashtbl.t val map_inplace : f:(key:'a -> data:'b -> 'b) -> ('a, 'b) BatHashtbl.t -> unit val filter : f:('a -> bool) -> ('key, 'a) BatHashtbl.t -> ('key, 'a) BatHashtbl.t val filter_inplace : f:('a -> bool) -> ('key, 'a) BatHashtbl.t -> unit val filteri : f:(key:'key -> data:'a -> bool) -> ('key, 'a) BatHashtbl.t -> ('key, 'a) BatHashtbl.t val filteri_inplace : f:(key:'key -> data:'a -> bool) -> ('key, 'a) BatHashtbl.t -> unit val filter_map : f:(key:'key -> data:'a -> 'b option) -> ('key, 'a) BatHashtbl.t -> ('key, 'b) BatHashtbl.t val filter_map_inplace : f:(key:'key -> data:'a -> 'a option) -> ('key, 'a) BatHashtbl.t -> unit val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b) BatHashtbl.t -> init:'c -> 'c val modify : key:'a -> f:('b -> 'b) -> ('a, 'b) BatHashtbl.t -> unit val modify_def : default:'b -> key:'a -> f:('b -> 'b) -> ('a, 'b) BatHashtbl.t -> unit val modify_opt : key:'a -> f:('b option -> 'b option) -> ('a, 'b) BatHashtbl.t -> unit end`