module CCHashtbl:sig..end
type'asequence =('a -> unit) -> unit
type'aeq ='a -> 'a -> bool
type'ahash ='a -> int
type'aprinter =Format.formatter -> 'a -> unit
val get : ('a, 'b) Hashtbl.t -> 'a -> 'b optionHashtbl.findval get_or : ('a, 'b) Hashtbl.t -> 'a -> or_:'b -> 'bget_or tbl k ~or_ returns the value associated to k if present,
and returns or_ otherwise (if k doesn't belong in tbl)val keys : ('a, 'b) Hashtbl.t -> 'a sequenceHashtbl.iter)val values : ('a, 'b) Hashtbl.t -> 'b sequenceval keys_list : ('a, 'b) Hashtbl.t -> 'a listkeys_list t is the list of keys in t.val values_list : ('a, 'b) Hashtbl.t -> 'b listvalues_list t is the list of values in t.val map_list : ('a -> 'b -> 'c) -> ('a, 'b) Hashtbl.t -> 'c listval incr : ?by:int -> ('a, int) Hashtbl.t -> 'a -> unitincr ?by tbl x increments or initializes the counter associated with x.
If get tbl x = None, then after update, get tbl x = Some 1;
otherwise, if get tbl x = Some n, now get tbl x = Some (n+1).by : if specified, the int value is incremented by by rather than 1val decr : ?by:int -> ('a, int) Hashtbl.t -> 'a -> unitCCHashtbl.incr but substract 1 (or the value of by).
If the value reaches 0, the key is removed from the table.
This does nothing if the key is not already present in the table.val to_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) sequenceval add_list : ('a, 'b list) Hashtbl.t -> 'a -> 'b -> unitadd_list tbl x y adds y to the list x is bound to. If x is
not bound, it becomes bound to [y].val add_seq : ('a, 'b) Hashtbl.t -> ('a * 'b) sequence -> unitHashtbl.add.val of_seq : ('a * 'b) sequence -> ('a, 'b) Hashtbl.tval add_seq_count : ('a, int) Hashtbl.t -> 'a sequence -> unitadd_seq_count tbl seq increments the count of each element of seq
by calling CCHashtbl.incr. This is useful for counting how many times each
element of seq occurs.val of_seq_count : 'a sequence -> ('a, int) Hashtbl.t
val to_list : ('a, 'b) Hashtbl.t -> ('a * 'b) listval of_list : ('a * 'b) list -> ('a, 'b) Hashtbl.tval update : ('a, 'b) Hashtbl.t -> f:('a -> 'b option -> 'b option) -> k:'a -> unitupdate tbl ~f ~k updates key k by calling f k (Some v) if
k was mapped to v, or f k None otherwise; if the call
returns None then k is removed/stays removed, if the call
returns Some v' then the binding k -> v' is inserted
using Hashtbl.replaceval print : 'a printer ->
'b printer -> ('a, 'b) Hashtbl.t printermodule type S =sig..end
module Make(X:Hashtbl.HashedType):Swith type key = X.t and type 'a t = 'a Hashtbl.Make(X).t
A table with a default element for keys that were never added.
module type DEFAULT =sig..end
module MakeDefault(X:Hashtbl.HashedType):DEFAULTwith type key = X.t
module type COUNTER =sig..end
module MakeCounter(X:Hashtbl.HashedType):COUNTERwith type elt = X.t and type t = int Hashtbl.Make(X).t
t is exposed