functor
(Hashtbl : sig
type 'a key
type ('a, 'b) t
val add :
('a, 'b) Hash_set.t ->
key:'a Hash_set.key -> data:'b -> unit
val clear : ('a, 'b) Hash_set.t -> unit
val create : int -> ('a, 'b) Hash_set.t
val fold :
f:(key:'a Hash_set.key -> data:'b -> 'c -> 'c) ->
('a, 'b) Hash_set.t -> init:'c -> 'c
val iter :
f:(key:'a Hash_set.key -> data:'b -> unit) ->
('a, 'b) Hash_set.t -> unit
val keys : ('a, 'b) Hash_set.t -> 'a Hash_set.key list
val length : ('a, 'b) Hash_set.t -> int
val mem : ('a, 'b) Hash_set.t -> 'a Hash_set.key -> bool
val of_alist :
('a Hash_set.key * 'b) list -> ('a, 'b) Hash_set.t
val remove : ('a, 'b) Hash_set.t -> 'a Hash_set.key -> unit
val replace :
('a, 'b) Hash_set.t ->
key:'a Hash_set.key -> data:'b -> unit
end) ->
sig
type 'a elt_ = 'a Hashtbl.key
type 'a set = ('a, unit) Hashtbl.t
val clear : ('a, 'b) Hashtbl.t -> unit
val create : int -> ('a, 'b) Hashtbl.t
val length : ('a, 'b) Hashtbl.t -> int
val mem : ('a, 'b) Hashtbl.t -> 'a Hashtbl.key -> bool
val add : ('a, unit) Hashtbl.t -> 'a Hashtbl.key -> unit
val strict_add : ('a, unit) Hashtbl.t -> 'a Hashtbl.key -> unit
val remove : ('a, 'b) Hashtbl.t -> 'a Hashtbl.key -> unit
val strict_remove : ('a, 'b) Hashtbl.t -> 'a Hashtbl.key -> unit
val fold :
f:('a -> 'b Hashtbl.key -> 'a) -> init:'a -> ('b, 'c) Hashtbl.t -> 'a
val iter : f:('a Hashtbl.key -> unit) -> ('a, 'b) Hashtbl.t -> unit
val to_list : ('a, 'b) Hashtbl.t -> 'a Hashtbl.key list
val of_list : 'a Hashtbl.key list -> ('a, unit) Hashtbl.t
val sexp_of_t :
('a Hashtbl.key -> Sexplib.Sexp.t) ->
('a, 'b) Hashtbl.t -> Sexplib.Sexp.t
val t_of_sexp :
(Sexplib.Sexp.t -> 'a Hashtbl.key) ->
Sexplib.Sexp.t -> ('a, unit) Hashtbl.t
end