`sig val add : ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> key:'a -> data:'b -> unit val replace : ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> key:'a -> data:'b -> unit val iter : f:(key:'a -> data:'b -> unit) -> ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> unit val map : f:(key:'a -> data:'b -> 'c) -> ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> ('a, 'c, [< `Read | `Write ]) BatHashtbl.Cap.t val map_inplace : f:(key:'a -> data:'b -> 'b) -> ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit val filter : f:('a -> bool) -> ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> ('key, 'a, [< `Read | `Write ]) BatHashtbl.Cap.t val filter_inplace : f:('a -> bool) -> ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit val filteri : f:(key:'key -> data:'a -> bool) -> ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> ('key, 'a, [< `Read | `Write ]) BatHashtbl.Cap.t val filteri_inplace : f:(key:'key -> data:'a -> bool) -> ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit val filter_map : f:(key:'key -> data:'a -> 'b option) -> ('key, 'a, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> ('key, 'b, [< `Read | `Write ]) BatHashtbl.Cap.t val filter_map_inplace : f:(key:'key -> data:'a -> 'a option) -> ('key, 'a, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t -> unit val fold : f:(key:'a -> data:'b -> 'c -> 'c) -> ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> init:'c -> 'c end`