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