functor (Key : Core_hashtbl_intf.T0) ->
sig
module T : sig type ('a, 'b) t = (Key.t, 'b) Hashtbl.t end
module Key1 : sig type 'a t = Key.t end
module type S =
sig
module Key : sig type t = Key.t end
val hashable : Key.t Core_hashtbl_intf.hashable
type 'a t = (Key.t, 'a) T.t
val clear : ('a, 'b) T.t -> unit
val copy : ('a, 'b) T.t -> ('a, 'b) T.t
val invariant : ('a, 'b) T.t -> unit
val fold :
('a, 'b) T.t ->
init:'c -> f:(key:'a Key1.t -> data:'b -> 'c -> 'c) -> 'c
val iter :
('a, 'b) T.t -> f:(key:'a Key1.t -> data:'b -> unit) -> unit
val existsi :
('a, 'b) T.t -> f:(key:'a Key1.t -> data:'b -> bool) -> bool
val exists : ('a, 'b) T.t -> f:('b -> bool) -> bool
val length : ('a, 'b) T.t -> int
val is_empty : ('a, 'b) T.t -> bool
val mem : ('a, 'b) T.t -> 'a Key1.t -> bool
val remove : ('a, 'b) T.t -> 'a Key1.t -> unit
val remove_one : ('a, 'b list) T.t -> 'a Key1.t -> unit
val replace : ('a, 'b) T.t -> key:'a Key1.t -> data:'b -> unit
val change :
('a, 'b) T.t -> 'a Key1.t -> ('b option -> 'b option) -> unit
val add_multi : ('a, 'b list) T.t -> key:'a Key1.t -> data:'b -> unit
val map : ('a, 'b) T.t -> f:('b -> 'c) -> ('a, 'c) T.t
val mapi :
('a, 'b) T.t -> f:(key:'a Key1.t -> data:'b -> 'c) -> ('a, 'c) T.t
val filter_map : ('a, 'b) T.t -> f:('b -> 'c option) -> ('a, 'c) T.t
val filter_mapi :
('a, 'b) T.t ->
f:(key:'a Key1.t -> data:'b -> 'c option) -> ('a, 'c) T.t
val filter : ('a, 'b) T.t -> f:('b -> bool) -> ('a, 'b) T.t
val filteri :
('a, 'b) T.t ->
f:(key:'a Key1.t -> data:'b -> bool) -> ('a, 'b) T.t
val find_or_add :
('a, 'b) T.t -> 'a Key1.t -> default:(unit -> 'b) -> 'b
val find : ('a, 'b) T.t -> 'a Key1.t -> 'b option
val find_exn : ('a, 'b) T.t -> 'a Key1.t -> 'b
val iter_vals : ('a, 'b) T.t -> f:('b -> unit) -> unit
val merge :
f:(key:'a Key1.t -> 'b option -> 'c option -> 'd option) ->
('a, 'b) T.t -> ('a, 'c) T.t -> ('a, 'd) T.t
val merge_into :
f:(key:'a Key1.t -> 'b -> 'b option -> 'b option) ->
src:('a, 'b) T.t -> dst:('a, 'b) T.t -> unit
val keys : ('a, 'b) T.t -> 'a Key1.t list
val data : ('a, 'b) T.t -> 'b list
val filter_inplace : ('a, 'b) T.t -> f:('b -> bool) -> unit
val filteri_inplace :
('a, 'b) T.t -> f:('a Key1.t -> 'b -> bool) -> unit
val equal :
('a, 'b) T.t -> ('a, 'b) T.t -> ('b -> 'b -> bool) -> bool
val to_alist : ('a, 'b) T.t -> ('a Key1.t * 'b) list
val incr : ?by:int -> ('a, int) T.t -> 'a Key1.t -> unit
val create : (unit -> ('a, 'b) T.t) Core_hashtbl_intf.with_options
val of_alist :
(('a Key1.t * 'b) list ->
[ `Duplicate_key of 'a Key1.t | `Ok of ('a, 'b) T.t ])
Core_hashtbl_intf.with_options
val of_alist_exn :
(('a Key1.t * 'b) list -> ('a, 'b) T.t)
Core_hashtbl_intf.with_options
val of_alist_multi :
(('a Key1.t * 'b) list -> ('a, 'b list) T.t)
Core_hashtbl_intf.with_options
val create_mapped :
(get_key:('a -> 'b Key1.t) ->
get_data:('a -> 'c) -> 'a list -> ('b, 'c) T.t)
Core_hashtbl_intf.with_options
val create_with_key :
(get_key:('a -> 'b Key1.t) -> 'a list -> ('b, 'a) T.t)
Core_hashtbl_intf.with_options
val group :
(get_key:('a -> 'b Key1.t) ->
get_data:('a -> 'c) ->
combine:('c -> 'c -> 'c) -> 'a list -> ('b, 'c) T.t)
Core_hashtbl_intf.with_options
type 'a sexpable = 'a t
val sexp_of_t :
('a -> Sexplib.Sexp.t) -> 'a sexpable -> Sexplib.Sexp.t
val t_of_sexp :
(Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a sexpable
end
end