module Access_control : sig .. end
type ('key, 'data, +'z) any
module Immutable : sig .. end
type ('key, 'data) t = ('key, 'data, Core.Std.immutable) any
include Core.Std.Sexpable.S2 with type t := ('key, 'data) t
include Core.Std.Binable.S2 with type t := ('key, 'data) t
module Read_only : sig .. end
type ('key, 'data) t = ('key, 'data, Core.Std.read_only) any
include Core.Std.Sexpable.S2 with type t := ('key, 'data) t
include Core.Std.Binable.S2 with type t := ('key, 'data) t
module Read_write : sig .. end
type ('key, 'data) t = ('key, 'data, Core.Std.read_write) any
include Core.Std.Sexpable.S2 with type t := ('key, 'data) t
include Core.Std.Binable.S2 with type t := ('key, 'data) t
val of_hashtbl : ('key, 'data) Core.Std.Hashtbl.t -> ('key, 'data, 'a) any
val clear : ('a, 'b) Read_write.t -> unit
val copy : ('a, 'b, 'c) any -> ('a, 'b, 'd) any
val fold : ('a, 'b, 'd) any -> init:'c -> f:(key:'a -> data:'b -> 'c -> 'c) -> 'c
val iter : ('a, 'b, 'c) any -> f:(key:'a -> data:'b -> unit) -> unit
val existsi : ('a, 'b, 'c) any -> f:(key:'a -> data:'b -> bool) -> bool
val exists : ('a, 'b, 'c) any -> f:('b -> bool) -> bool
val length : ('a, 'b, 'c) any -> int
val is_empty : ('a, 'b, 'c) any -> bool
val mem : ('a, 'b, 'c) any -> 'a -> bool
val remove : ('a, 'b) Read_write.t -> 'a -> unit
val remove_one : ('a, 'b list) Read_write.t -> 'a -> unit
val replace : ('a, 'b) Read_write.t -> key:'a -> data:'b -> unit
val set : ('a, 'b) Read_write.t -> key:'a -> data:'b -> unit
val add : ('a, 'b) Read_write.t -> key:'a -> data:'b -> [ `Duplicate | `Ok ]
val add_exn : ('a, 'b) Read_write.t -> key:'a -> data:'b -> unit
val change : ('a, 'b) Read_write.t -> 'a -> ('b option -> 'b option) -> unit
val add_multi : ('a, 'b list) Read_write.t -> key:'a -> data:'b -> unit
val map : ('a, 'b, 'd) any -> f:('b -> 'c) -> ('a, 'c, 'e) any
val mapi : ('a, 'b, 'd) any -> f:(key:'a -> data:'b -> 'c) -> ('a, 'c, 'e) any
val filter_map : ('a, 'b, 'd) any -> f:('b -> 'c option) -> ('a, 'c, 'e) any
val filter_mapi : ('a, 'b, 'd) any -> f:(key:'a -> data:'b -> 'c option) -> ('a, 'c, 'e) any
val filter : ('a, 'b, 'c) any -> f:('b -> bool) -> ('a, 'b, 'd) any
val filteri : ('a, 'b, 'c) any -> f:(key:'a -> data:'b -> bool) -> ('a, 'b, 'd) any
val find_or_add : ('a, 'b, 'c) any -> 'a -> default:(unit -> 'b) -> 'b
val find : ('a, 'b, 'c) any -> 'a -> 'b option
val find_exn : ('a, 'b, 'c) any -> 'a -> 'b
val iter_vals : ('a, 'b, 'c) any -> f:('b -> unit) -> unit
val merge : ('k, 'a, 'd) any ->
('k, 'b, 'e) any ->
f:(key:'k -> [ `Both of 'a * 'b | `Left of 'a | `Right of 'b ] -> 'c option) ->
('k, 'c, 'f) any
val merge_into : f:(key:'a -> 'b -> 'b option -> 'b option) ->
src:('a, 'b, 'c) any -> dst:('a, 'b) Read_write.t -> unit
val keys : ('a, 'b, 'c) any -> 'a list
val data : ('a, 'b, 'c) any -> 'b list
val filter_inplace : ('a, 'b) Read_write.t -> f:('b -> bool) -> unit
val filteri_inplace : ('a, 'b) Read_write.t -> f:('a -> 'b -> bool) -> unit
val equal : ('a, 'b, 'c) any -> ('a, 'b, 'd) any -> ('b -> 'b -> bool) -> bool
val to_alist : ('a, 'b, 'c) any -> ('a * 'b) list
val incr : ?by:int -> ('a, int) Read_write.t -> 'a -> unit