module Immutable : sig ... endmodule Read_only : sig ... endmodule Read_write : sig ... endval of_hashtbl : ('key, 'data) Core.Hashtbl.t ‑> ('key, 'data, [< _ Core.perms ]) anyval clear : (_, _) Read_write.t ‑> unitval copy : ('a, 'b, [> Core.read ]) any ‑> ('a, 'b, [< _ Core.perms ]) anyval length : (_, _, _) any ‑> intval is_empty : (_, _, _) any ‑> boolval remove : ('a, _) Read_write.t ‑> 'a ‑> unitval replace : ('a, 'b) Read_write.t ‑> key:'a ‑> data:'b ‑> unitval set : ('a, 'b) Read_write.t ‑> key:'a ‑> data:'b ‑> unitval add : ('a, 'b) Read_write.t ‑> key:'a ‑> data:'b ‑> [ `Ok | `Duplicate ]val add_exn : ('a, 'b) Read_write.t ‑> key:'a ‑> data:'b ‑> unitval change : ('a, 'b) Read_write.t ‑> 'a ‑> f:('b option ‑> 'b option) ‑> unitval update : ('a, 'b) Read_write.t ‑> 'a ‑> f:('b option ‑> 'b) ‑> unitval add_multi : ('a, 'b list) Read_write.t ‑> key:'a ‑> data:'b ‑> unitval remove_multi : ('a, _ list) Read_write.t ‑> 'a ‑> unitval map : ('a, 'b, [> Core.read ]) any ‑> f:('b ‑> 'c) ‑> ('a, 'c, [< _ Core.perms ]) anyval mapi : ('a, 'b, [> Core.read ]) any ‑> f:(key:'a ‑> data:'b ‑> 'c) ‑> ('a, 'c, [< _ Core.perms ]) anyval filter_map : ('a, 'b, [> Core.read ]) any ‑> f:('b ‑> 'c option) ‑> ('a, 'c, [< _ Core.perms ]) anyval filter_mapi : ('a, 'b, [> Core.read ]) any ‑> f:(key:'a ‑> data:'b ‑> 'c option) ‑> ('a, 'c, [< _ Core.perms ]) anyval filter_keys : ('a, 'b, [> Core.read ]) any ‑> f:('a ‑> bool) ‑> ('a, 'b, [< _ Core.perms ]) anyval filter : ('a, 'b, [> Core.read ]) any ‑> f:('b ‑> bool) ‑> ('a, 'b, [< _ Core.perms ]) anyval filteri : ('a, 'b, [> Core.read ]) any ‑> f:(key:'a ‑> data:'b ‑> bool) ‑> ('a, 'b, [< _ Core.perms ]) anyval find_or_add : ('a, 'b) Read_write.t ‑> 'a ‑> default:(unit ‑> 'b) ‑> 'bval merge_into : src:('a, 'b, [> Core.read ]) any ‑> dst:('a, 'b) Read_write.t ‑> f:(key:'a ‑> 'b ‑> 'b option ‑> 'b merge_into_action) ‑> unitval filter_inplace : ('a, 'b) Read_write.t ‑> f:('b ‑> bool) ‑> unitval filteri_inplace : ('a, 'b) Read_write.t ‑> f:(key:'a ‑> data:'b ‑> bool) ‑> unitval incr : ?by:int ‑> ?remove_if_zero:bool ‑> ('a, int) Read_write.t ‑> 'a ‑> unit