Up

Module Hash_set = Core_kernel.Hash_set

Signature

type 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t

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.

include Core_kernel.Hash_set_intf.Creators with type 'a t := 'a t with type 'a elt = 'a with type ('key, 'z) create_options := ('key, 'z) Core_kernel.Hash_set_intf.create_options_with_hashable_required
type 'a t
type 'a elt = 'a
type ('a, 'z) create_options
val create : ('a, unit -> 'a t) create_options
val of_list : ('a, 'a elt list -> 'a t) create_options
include Core_kernel.Hash_set_intf.Accessors with type 'a t := 'a t with type 'a elt := 'a elt
include Core_kernel.Container.Generic
type 'a t
type 'a elt
val mem : ?equal:('a elt -> 'a elt -> bool) -> 'a t -> 'a elt -> bool
val length : _ t -> int
val is_empty : _ t -> bool
val iter : 'a t -> f:('a elt -> unit) -> unit
val fold : 'a t -> init:'accum -> f:('accum -> 'a elt -> 'accum) -> 'accum
val exists : 'a t -> f:('a elt -> bool) -> bool
val for_all : 'a t -> f:('a elt -> bool) -> bool
val count : 'a t -> f:('a elt -> bool) -> int
val sum : (module Commutative_group.S with type t = 'sum) -> 'a t -> f:('a elt -> 'sum) -> 'sum
val find : 'a t -> f:('a elt -> bool) -> 'a elt option
val find_map : 'a t -> f:('a elt -> 'b option) -> 'b option
val to_list : 'a t -> 'a elt list
val to_array : 'a t -> 'a elt array
val min_elt : 'a t -> cmp:('a elt -> 'a elt -> int) -> 'a elt option
val max_elt : 'a t -> cmp:('a elt -> 'a elt -> int) -> 'a elt option
val mem : 'a t -> 'a -> bool

override Container.Generic.mem

val copy : 'a t -> 'a t

override Container.Generic.mem

preserves the equality function

val add : 'a t -> 'a -> unit

preserves the equality function

val strict_add : 'a t -> 'a -> unit Core_kernel.Or_error.t
val strict_add_exn : 'a t -> 'a -> unit
val remove : 'a t -> 'a -> unit
val strict_remove : 'a t -> 'a -> unit Core_kernel.Or_error.t
val strict_remove_exn : 'a t -> 'a -> unit
val clear : 'a t -> unit
val equal : 'a t -> 'a t -> bool
val filter : 'a t -> f:('a -> bool) -> 'a t
val diff : 'a t -> 'a t -> 'a t
val of_hashtbl_keys : ('a, _) Core_kernel.Core_hashtbl.t -> 'a t
val to_hashtbl : 'key t -> f:('key -> 'data) -> ('key, 'data) Core_kernel.Core_hashtbl.t
val filter_inplace : 'a t -> f:('a -> bool) -> unit
val hashable : 'key t -> 'key Core_kernel.Core_hashtbl_intf.Hashable.t
module type S = Core_kernel.Hash_set_intf.S with type 'a hash_set = 'a t
module type S_binable = Core_kernel.Hash_set_intf.S_binable with type 'a hash_set = 'a t
module Poly : sig .. end
A hash set that uses polymorphic comparison
module Make (Elt : Elt) : S with type elt = Elt.t
module Make_binable (Elt : Elt_binable) : S_binable with type elt = Elt.t