include Hashtbl_intf.Sinclude Hashtbl_intf.S_plaininclude sig ... endval sexp_of_t : ('b ‑> Sexplib.Sexp.t) ‑> 'b t ‑> Sexplib.Sexp.tval hashable : key Hashtbl_intf.Hashable.tinclude Core_kernel__.Import.Invariant.S1 with type b t := b tval invariant : 'a Base__.Invariant_intf.inv ‑> 'a t Base__.Invariant_intf.invinclude Hashtbl_intf.Creators with type (a, b) t := (a, b) t_ with type a key := a key_ with type (key, data, z) create_options := (key, data, z) Hashtbl_intf.create_options_without_hashableval create : ('a key, 'b, unit ‑> ('a, 'b) t) create_optionsval of_alist : ('a key, 'b, ('a key * 'b) list ‑> [ `Ok of ('a, 'b) t | `Duplicate_key of 'a key ]) create_optionsval of_alist_report_all_dups : ('a key, 'b, ('a key * 'b) list ‑> [ `Ok of ('a, 'b) t | `Duplicate_keys of 'a key list ]) create_optionsval of_alist_or_error : ('a key, 'b, ('a key * 'b) list ‑> ('a, 'b) t Base.Or_error.t) create_optionsval of_alist_exn : ('a key, 'b, ('a key * 'b) list ‑> ('a, 'b) t) create_optionsval of_alist_multi : ('a key, 'b list, ('a key * 'b) list ‑> ('a, 'b list) t) create_optionsval create_mapped : ('a key, 'b, get_key:('r ‑> 'a key) ‑> get_data:('r ‑> 'b) ‑> 'r list ‑> [ `Ok of ('a, 'b) t | `Duplicate_keys of 'a key list ]) create_optionscreate_mapped get_key get_data [x1,...,xn]
= of_alist [get_key x1, get_data x1; ...; get_key xn, get_data xn]val create_with_key : ('a key, 'r, get_key:('r ‑> 'a key) ‑> 'r list ‑> [ `Ok of ('a, 'r) t | `Duplicate_keys of 'a key list ]) create_optionscreate_with_key ~get_key [x1,...,xn]
= of_alist [get_key x1, x1; ...; get_key xn, xn]val create_with_key_or_error : ('a key, 'r, get_key:('r ‑> 'a key) ‑> 'r list ‑> ('a, 'r) t Base.Or_error.t) create_optionsval create_with_key_exn : ('a key, 'r, get_key:('r ‑> 'a key) ‑> 'r list ‑> ('a, 'r) t) create_optionsval group : ('a key, 'b, get_key:('r ‑> 'a key) ‑> get_data:('r ‑> 'b) ‑> combine:('b ‑> 'b ‑> 'b) ‑> 'r list ‑> ('a, 'b) t) create_optionsinclude Hashtbl_intf.Accessors with type (a, b) t := (a, b) t_ with type a key := a key_val sexp_of_key : ('a, _) t ‑> 'a key ‑> Base.Sexp.tval clear : (_, _) t ‑> unitAttempting to modify (set, remove, etc.) the hashtable during iteration (fold,
iter, iter_keys, iteri) will raise an exception.
val iter : (_, 'b) t ‑> f:('b ‑> unit) ‑> unitval exists : (_, 'b) t ‑> f:('b ‑> bool) ‑> boolval for_all : (_, 'b) t ‑> f:('b ‑> bool) ‑> boolval count : (_, 'b) t ‑> f:('b ‑> bool) ‑> intval length : (_, _) t ‑> intval is_empty : (_, _) t ‑> boolval partition_mapi : ('a, 'b) t ‑> f:(key:'a key ‑> data:'b ‑> [ `Fst of 'c | `Snd of 'd ]) ‑> ('a, 'c) t * ('a, 'd) tlike partition_map, but function takes both key and data as arguments
returns a pair of tables (t1, t2), where t1 contains all the elements of the
initial table which satisfy the predicate f, and t2 contains all the elements
which do not satisfy f.
find_or_add t k ~default returns the data associated with key k if it
is in the table t, otherwise it lets d = default() and adds it to the
table.
val find_and_call : ('a, 'b) t ‑> 'a key ‑> if_found:('b ‑> 'c) ‑> if_not_found:('a key ‑> 'c) ‑> 'cfind_and_call t k ~if_found ~if_not_found
is equivalent to:
match find t k with Some v -> if_found v | None -> if_not_found k
except that it doesn't allocate the option.
find_and_remove t k returns Some (the current binding) of k in t and removes
it, or None is no such binding exists
val merge : ('k, 'a) t ‑> ('k, 'b) t ‑> f:(key:'k key ‑> [ `Left of 'a | `Right of 'b | `Both of 'a * 'b ] ‑> 'c option) ‑> ('k, 'c) tMerge two hashtables.
The result of merge f h1 h2 has as keys the set of all k in the
union of the sets of keys of h1 and h2 for which d(k) is not
None, where:
d(k) =
k in h1 is to d1, and h2 does not map k;k in h2 is to d2, and h1 does not map k;k in h1 is to d1 and k in h2 is to d2.Each key k is mapped to a single piece of data x, where d(k) = Some x.
val merge_into : src:('k, 'a) t ‑> dst:('k, 'b) t ‑> f:(key:'k key ‑> 'a ‑> 'b option ‑> 'b merge_into_action) ‑> unitval filter_inplace : (_, 'b) t ‑> f:('b ‑> bool) ‑> unitval map_inplace : (_, 'b) t ‑> f:('b ‑> 'b) ‑> unitmap_inplace t ~f applies f to all elements in t, transforming them in place
val filter_map_inplace : (_, 'b) t ‑> f:('b ‑> 'b option) ‑> unitfilter_map_inplace combines the effects of map_inplace and filter_inplace
equal t1 t2 f and similar t1 t2 f both return true iff t1 and t2 have the
same keys and for all keys k, f (find_exn t1 k) (find_exn t2 k). equal and
similar only differ in their types.
val validate : name:('a key ‑> string) ‑> 'b Base.Validate.check ‑> ('a, 'b) t Base.Validate.checkinclude Hashtbl_intf.Multi with type (a, b) t := (a, b) t_ with type a key := a key_add_multi t ~key ~data if key is present in the table then cons
data on the list, otherwise add key with a single element list.
include sig ... end with type a t := a tinclude sig ... endval t_of_sexp : (Sexplib.Sexp.t ‑> 'v_x__002_) ‑> Sexplib.Sexp.t ‑> 'v_x__002_ tinclude Hashtbl_intf.Binable.S1 with type v t := v tval bin_shape_t : Bin_prot.Shape.t ‑> Bin_prot.Shape.tval bin_size_t : ('a, 'a t) Bin_prot.Size.sizer1val bin_write_t : ('a, 'a t) Bin_prot.Write.writer1val bin_read_t : ('a, 'a t) Bin_prot.Read.reader1val __bin_read_t__ : ('a, int ‑> 'a t) Bin_prot.Read.reader1val bin_writer_t : ('a, 'a t) Bin_prot.Type_class.S1.writerval bin_reader_t : ('a, 'a t) Bin_prot.Type_class.S1.readerval bin_t : ('a, 'a t) Bin_prot.Type_class.S1.t