package base

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

Module Base.Hash_setSource

Sourcetype 'a 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.

Sourcemodule Key = Hashtbl.Key
Sourcemodule type Creators = sig ... end
Sourcemodule type Creators_generic = sig ... end
Sourcemodule type For_deriving = sig ... end
Sourcetype nonrec ('key, 'z) create_options = ?growth_allowed:bool -> ?size:int -> 'key Hashtbl.Key.t -> 'z
include Creators with type 'a t := 'a t
Sourceval create : ?growth_allowed:bool -> ?size:int -> 'a Hashtbl.Key.t -> 'a t
Sourceval of_list : ?growth_allowed:bool -> ?size:int -> 'a Hashtbl.Key.t -> 'a list -> 'a t
Sourcemodule type Accessors = sig ... end
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
Sourcetype 'a elt = 'a
Sourceval length : _ t -> int
Sourceval is_empty : _ t -> bool
Sourceval iter : 'a t -> f:('a elt -> unit) -> unit
Sourceval fold : 'a t -> init:'accum -> f:('accum -> 'a elt -> 'accum) -> 'accum
Sourceval fold_result : 'a t -> init:'accum -> f:('accum -> 'a elt -> ('accum, 'e) Result.t) -> ('accum, 'e) Result.t
Sourceval fold_until : 'a t -> init:'accum -> f:('accum -> 'a elt -> ('accum, 'final) Container.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 Container.Summable with type t = 'sum) -> 'a t -> f:('a elt -> 'sum) -> 'sum
Sourceval find : 'a t -> f:('a elt -> bool) -> 'a elt option
Sourceval find_map : 'a t -> f:('a elt -> 'b option) -> 'b option
Sourceval to_list : 'a t -> 'a elt list
Sourceval to_array : 'a t -> 'a elt array
Sourceval min_elt : 'a t -> compare:('a elt -> 'a elt -> int) -> 'a elt option
Sourceval max_elt : 'a t -> compare:('a elt -> 'a elt -> int) -> 'a 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 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 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, _) Hashtbl.t -> 'a t
Sourceval to_hashtbl : 'key t -> f:('key -> 'data) -> ('key, 'data) Hashtbl.t
Sourceval hashable_s : 'key t -> 'key Key.t
Sourcetype nonrec ('key, 'z) create_options_without_first_class_module = ?growth_allowed:bool -> ?size:int -> 'z
Sourcemodule Poly : sig ... end

A hash set that uses polymorphic comparison

Sourcemodule Creators (Elt : sig ... end) : sig ... end
include 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 : 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 -> Sexp.t
Sourceval m__t_of_sexp : (module M_of_sexp with type t = 'elt) -> 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
OCaml

Innovation. Community. Security.