sig
  val add :
    ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t ->
    key:'-> data:'-> unit
  val replace :
    ('a, 'b, [< `Read | `Write > `Write ]) BatHashtbl.Cap.t ->
    key:'-> data:'-> unit
  val iter :
    f:(key:'-> data:'-> unit) ->
    ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> unit
  val fold :
    f:(key:'-> data:'-> '-> 'c) ->
    ('a, 'b, [< `Read | `Write > `Read ]) BatHashtbl.Cap.t -> init:'-> 'c
end