Up

Module Poly

A hash set that uses polymorphic comparison

Signature

type 'a t = 'a t
val t_of_sexp : (Sexplib.Sexp.t -> 'a) -> Sexplib.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib.Sexp.t) -> 'a t -> Sexplib.Sexp.t
include Hash_set_intf.Creators with type 'a t := 'a t with type 'a elt = 'a with type ('key, 'z) create_options := ('key, 'z) Hash_set_intf.create_options_without_hashable
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 Hash_set_intf.Accessors with type 'a t := 'a t with type 'a elt := 'a elt
include 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 Or_error.t
val strict_add_exn : 'a t -> 'a -> unit
val remove : 'a t -> 'a -> unit
val strict_remove : 'a t -> 'a -> unit 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_hashtbl.t -> 'a t
val to_hashtbl : 'key t -> f:('key -> 'data) -> ('key, 'data) Core_hashtbl.t
val filter_inplace : 'a t -> f:('a -> bool) -> unit