package sexp

  1. Overview
  2. Docs
module Elt : sig ... end
module Diff : sig ... end
include Core.Set_intf.S with module Elt := Elt and module Diff := Diff
include Core.Set_intf.S_plain with module Elt := Elt and module Diff := Diff
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t -> t -> int
include Ppx_compare_lib.Equal.S with type t := t
val equal : t -> t -> bool
include Diffable.S_plain with type t := t and module Diff := Diff
include Core.Set_intf.Creators_generic with type ('a, 'b) set := ('a, 'b) Base.Set.t with type ('a, 'b) t := t with type ('a, 'b) tree := (Elt.t, Elt.comparator_witness) Base.Set.Using_comparator.Tree.t with type 'a elt := Elt.t with type 'c cmp := Elt.comparator_witness with type ('a, 'b, 'c) create_options := ('a, 'b, 'c) Base.Set.Without_comparator.t
include Base.Set.Creators_generic with type ('a, 'b) set := ('a, 'b) Base.Set.t with type ('a, 'b) t := t with type ('a, 'b) tree := (Elt.t, Elt.comparator_witness) Base.Set.Using_comparator.Tree.t with type 'a elt := Elt.t with type 'c cmp := Elt.comparator_witness with type ('a, 'b, 'c) create_options := ('a, 'b, 'c) Base.Set.Without_comparator.t
val empty : ('a, 'cmp, t) Base.Set.Without_comparator.t
val singleton : ('a, 'cmp, Elt.t -> t) Base.Set.Without_comparator.t
val union_list : ('a, 'cmp, t list -> t) Base.Set.Without_comparator.t
val of_list : ('a, 'cmp, Elt.t list -> t) Base.Set.Without_comparator.t
val of_sequence : ('a, 'cmp, Elt.t Base.Sequence.t -> t) Base.Set.Without_comparator.t
val of_array : ('a, 'cmp, Elt.t array -> t) Base.Set.Without_comparator.t
val of_sorted_array : ('a, 'cmp, Elt.t array -> t Base.Or_error.t) Base.Set.Without_comparator.t
val of_sorted_array_unchecked : ('a, 'cmp, Elt.t array -> t) Base.Set.Without_comparator.t
val of_increasing_iterator_unchecked : ('a, 'cmp, len:int -> f:(int -> Elt.t) -> t) Base.Set.Without_comparator.t
val stable_dedup_list : ('a, _, Elt.t list -> Elt.t list) Base.Set.Without_comparator.t
  • deprecated [since 2023-04] Use [List.stable_dedup] instead.
val map : ('b, 'cmp, ('a, _) Base.Set.t -> f:('a -> Elt.t) -> t) Base.Set.Without_comparator.t

The types of map and filter_map are subtle. The input set, ('a, _) set, reflects the fact that these functions take a set of *any* type, with any comparator, while the output set, ('b, 'cmp) t, reflects that the output set has the particular 'cmp of the creation function. The comparator can come in one of three ways, depending on which set module is used

  • Set.map -- comparator comes as an argument
  • Set.Poly.map -- comparator is polymorphic comparison
  • Foo.Set.map -- comparator is Foo.comparator
val filter_map : ('b, 'cmp, ('a, _) Base.Set.t -> f:('a -> Elt.t option) -> t) Base.Set.Without_comparator.t
val of_hash_set : ('a, 'cmp, Elt.t Core.Hash_set.t -> t) Base.Set.Without_comparator.t
val of_hashtbl_keys : ('a, 'cmp, (Elt.t, _) Core.Hashtbl.t -> t) Base.Set.Without_comparator.t
val of_map_keys : (Elt.t, _, Elt.comparator_witness) Base.Map.t -> t

Never requires a comparator because it can get one from the input Map.t.

module Provide_of_sexp (Elt : sig ... end) : sig ... end
module Provide_bin_io (Elt : sig ... end) : Core.Set_intf.Binable.S with type t := t
module Provide_hash (Elt : Base.Hasher.S with type t := Elt.t) : sig ... end
include Core.Sexpable.S with type t := t
val t_of_sexp : Sexplib0.Sexp.t -> t
val sexp_of_t : t -> Sexplib0.Sexp.t
include Core.Set_intf.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
val bin_size_t : t Bin_prot.Size.sizer
val bin_write_t : t Bin_prot.Write.writer
val bin_read_t : t Bin_prot.Read.reader
val __bin_read_t__ : (int -> t) Bin_prot.Read.reader

This function only needs implementation if t exposed to be a polymorphic variant. Despite what the type reads, this does *not* produce a function after reading; instead it takes the constructor tag (int) before reading and reads the rest of the variant t afterwards.

val bin_shape_t : Bin_prot.Shape.t
val bin_writer_t : t Bin_prot.Type_class.writer
val bin_reader_t : t Bin_prot.Type_class.reader
OCaml

Innovation. Community. Security.