package core

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Core.Hash_setSource

Sourcetype 'a t = 'a Base.Hash_set.t
Sourceval sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.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 Base.Hash_set.Creators with type 'a t := 'a t
Sourceval create : ?growth_allowed:bool -> ?size:int -> 'a Base.Hashtbl.Key.t -> 'a t
Sourceval of_list : ?growth_allowed:bool -> ?size:int -> 'a Base.Hashtbl.Key.t -> 'a list -> 'a t
include Base.Hash_set.Accessors with type 'a t := 'a t with type 'a elt := 'a Base.Hash_set.elt
include Base.Container.Generic with type ('a, _) t := 'a t with type 'a elt := 'a Base.Hash_set.elt
Sourceval length : _ t -> int
Sourceval is_empty : _ t -> bool
Sourceval iter : 'a t -> f:('a Base.Hash_set.elt -> unit) -> unit
Sourceval fold : 'a t -> init:'acc -> f:('acc -> 'a Base.Hash_set.elt -> 'acc) -> 'acc
Sourceval fold_result : 'a t -> init:'acc -> f:('acc -> 'a Base.Hash_set.elt -> ('acc, 'e) Base.Result.t) -> ('acc, 'e) Base.Result.t
Sourceval fold_until : 'a t -> init:'acc -> f: ('acc -> 'a Base.Hash_set.elt -> ('acc, 'final) Base.Container.Continue_or_stop.t) -> finish:('acc -> 'final) -> 'final
Sourceval exists : 'a t -> f:('a Base.Hash_set.elt -> bool) -> bool
Sourceval for_all : 'a t -> f:('a Base.Hash_set.elt -> bool) -> bool
Sourceval count : 'a t -> f:('a Base.Hash_set.elt -> bool) -> int
Sourceval sum : (module Base.Container.Summable with type t = 'sum) -> 'a t -> f:('a Base.Hash_set.elt -> 'sum) -> 'sum
Sourceval find : 'a t -> f:('a Base.Hash_set.elt -> bool) -> 'a Base.Hash_set.elt option
Sourceval find_map : 'a t -> f:('a Base.Hash_set.elt -> 'b option) -> 'b option
Sourceval to_list : 'a t -> 'a Base.Hash_set.elt list
Sourceval to_array : 'a t -> 'a Base.Hash_set.elt array
Sourceval min_elt : 'a t -> compare:('a Base.Hash_set.elt -> 'a Base.Hash_set.elt -> int) -> 'a Base.Hash_set.elt option
Sourceval max_elt : 'a t -> compare:('a Base.Hash_set.elt -> 'a Base.Hash_set.elt -> int) -> 'a Base.Hash_set.elt option
Sourceval mem : 'a t -> 'a -> bool

override Container.Generic.mem

Sourceval copy : 'a t -> 'a t

preserves the equality function

Sourceval add : 'a t -> 'a -> unit
Sourceval strict_add : 'a t -> 'a -> unit Base.Or_error.t

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
Sourceval strict_remove : 'a t -> 'a -> unit Base.Or_error.t

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 clear : 'a t -> unit
Sourceval equal : 'a t -> 'a t -> bool
Sourceval filter : 'a t -> f:('a -> bool) -> 'a t
Sourceval filter_inplace : 'a t -> f:('a -> bool) -> unit
Sourceval inter : 'key t -> 'key t -> 'key t

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.

Sourceval union : 'a t -> 'a t -> 'a t
Sourceval diff : 'a t -> 'a t -> 'a t
Sourceval of_hashtbl_keys : ('a, _) Base.Hashtbl.t -> 'a t
Sourceval to_hashtbl : 'key t -> f:('key -> 'data) -> ('key, 'data) Base.Hashtbl.t
Sourceval hashable : 'key t -> 'key Base.Hashable.t
Sourcemodule type Elt_plain = Hashtbl.Key_plain
Sourcemodule type Elt = Hashtbl.Key
Sourcemodule type Elt_binable = Hashtbl.Key_binable
Sourcemodule type Elt_stable = Hashtbl.Key_stable
Sourcemodule type S_plain = sig ... end
Sourcemodule type S = sig ... end
Sourcemodule type S_binable = sig ... end
Sourcemodule type S_stable = sig ... end
Sourcemodule Using_hashable : sig ... end
Sourcemodule Poly : sig ... end

A hash set that uses polymorphic comparison.

Sourcemodule Make_plain (Elt : Elt_plain) : S_plain with type elt = Elt.t
Sourcemodule Make (Elt : Elt) : S with type elt = Elt.t
Sourcemodule Make_plain_with_hashable (T : sig ... end) : S_plain with type elt = T.Elt.t
Sourcemodule Make_with_hashable (T : sig ... end) : S with type elt = T.Elt.t
Sourcemodule Make_binable_with_hashable (T : sig ... end) : S_binable with type elt = T.Elt.t
Sourcemodule Make_stable_with_hashable (T : sig ... end) : S_stable with type elt = T.Elt.t
include Base.Hash_set.For_deriving with type 'a t := 'a t
Sourcemodule type M_of_sexp = sig ... end
Sourcemodule type Sexp_of_m = sig ... end
Sourcemodule type Equal_m = sig ... end
Sourcemodule M (Elt : Base.T.T) : sig ... end

M is meant to be used in combination with OCaml applicative functor types:

Sourceval sexp_of_m__t : (module Sexp_of_m with type t = 'elt) -> 'elt t -> Base.Sexp.t
Sourceval m__t_of_sexp : (module M_of_sexp with type t = 'elt) -> Base.Sexp.t -> 'elt t
Sourceval m__t_sexp_grammar : (module Base__.Hash_set_intf.M_sexp_grammar with type t = 'elt) -> 'elt t Sexplib0.Sexp_grammar.t
Sourceval equal_m__t : (module Equal_m) -> 'elt t -> 'elt t -> bool
Sourcemodule type M_quickcheck = sig ... end
Sourceval quickcheck_generator_m__t : (module M_quickcheck with type t = 'key) -> 'key t Base_quickcheck.Generator.t
Sourceval quickcheck_observer_m__t : (module M_quickcheck with type t = 'key) -> 'key t Base_quickcheck.Observer.t
Sourceval quickcheck_shrinker_m__t : (module M_quickcheck with type t = 'key) -> 'key t Base_quickcheck.Shrinker.t
OCaml

Innovation. Community. Security.