We use [@@deriving sexp_of] but not [@@deriving sexp] because we want people to be explicit about the hash and comparison functions used when creating hashtables. One can use Hash_set.Poly.t, which does have [@@deriving sexp], to use polymorphic comparison and hashing.
Sourcetype nonrec ('key, 'z) create_options =
?growth_allowed:bool ->
?size:int ->
(module Base__.Hashtbl_intf.Key.S with type t = 'key) ->
'z include Creators with type 'a t := 'a t
Sourceval create :
?growth_allowed:bool ->
?size:int ->
(module Base__.Hash_set_intf.Key.S with type t = 'a) ->
'a t Sourceval of_list :
?growth_allowed:bool ->
?size:int ->
(module Base__.Hash_set_intf.Key.S with type t = 'a) ->
'a list ->
'a t include Accessors with type 'a t := 'a t with type 'a elt = 'a
include Container.Generic with type 'a t := 'a t with type 'a elt = 'a
Sourceval iter : 'a t -> f:('a elt -> unit) -> unit Sourceval fold : 'a t -> init:'accum -> f:('accum -> 'a elt -> 'accum) -> 'accum Sourceval fold_until :
'a t ->
init:'accum ->
f:
('accum ->
'a elt ->
('accum, 'final) Base__.Container_intf.Export.Continue_or_stop.t) ->
finish:('accum -> 'final) ->
'final Sourceval exists : 'a t -> f:('a elt -> bool) -> bool Sourceval for_all : 'a t -> f:('a elt -> bool) -> bool Sourceval count : 'a t -> f:('a elt -> bool) -> int Sourceval sum :
(module Base__.Container_intf.Summable with type t = 'sum) ->
'a t ->
f:('a elt -> 'sum) ->
'sum Sourceval find_map : 'a t -> f:('a elt -> 'b option) -> 'b option override Container.Generic.mem
preserves the equality function
strict_add t x returns Ok () if the x was not in t, or an Error if it was.
Sourceval strict_add_exn : 'a t -> 'a -> unit Sourceval remove : 'a t -> 'a -> unit strict_remove t x returns Ok () if the x was in t, or an Error if it was not.
Sourceval strict_remove_exn : 'a t -> 'a -> unit Sourceval filter : 'a t -> f:('a -> bool) -> 'a t Sourceval filter_inplace : 'a t -> f:('a -> bool) -> unit inter t1 t2 computes the set intersection of t1 and t2. Runs in O(min(length t1, length t2)). Behavior is undefined if t1 and t2 don't have the same equality function.
Sourcetype nonrec ('key, 'z) create_options_without_first_class_module =
?growth_allowed:bool ->
?size:int ->
'z A hash set that uses polymorphic comparison
M is meant to be used in combination with OCaml applicative functor types: