Set.Poly
module Tree : sig ... end
type 'elt t = ('elt, Base.Comparator.Poly.comparator_witness) t
include Bin_prot.Binable.S1 with type 'elt t := 'elt t
val bin_shape_t : Bin_prot.Shape.t -> Bin_prot.Shape.t
val bin_size_t : ('a, 'a t) Bin_prot.Size.sizer1
val bin_write_t : ('a, 'a t) Bin_prot.Write.writer1
val bin_read_t : ('a, 'a t) Bin_prot.Read.reader1
val __bin_read_t__ : ('a, int -> 'a t) Bin_prot.Read.reader1
val bin_writer_t : ('a, 'a t) Bin_prot.Type_class.S1.writer
val bin_reader_t : ('a, 'a t) Bin_prot.Type_class.S1.reader
val bin_t : ('a, 'a t) Bin_prot.Type_class.S1.t
include Ppx_compare_lib.Comparable.S1 with type 'elt t := 'elt t
include Sexplib0.Sexpable.S1 with type 'elt t := 'elt t
val t_of_sexp : (Sexplib0.Sexp.t -> 'a) -> Sexplib0.Sexp.t -> 'a t
val sexp_of_t : ('a -> Sexplib0.Sexp.t) -> 'a t -> Sexplib0.Sexp.t
val t_sexp_grammar :
'elt Sexplib0.Sexp_grammar.t ->
'elt t Sexplib0.Sexp_grammar.t
include Set_intf.Creators_generic
with type ('a, 'b) set := ('a, 'b) t
with type ('elt, 'cmp) t := 'elt t
with type ('elt, 'cmp) tree := 'elt Tree.t
with type 'c cmp := Base.Comparator.Poly.comparator_witness
with type 'a elt := 'a
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) t
with type ('elt, 'cmp) t := 'elt t
with type ('elt, 'cmp) tree := 'elt Tree.t
with type 'c cmp := Base.Comparator.Poly.comparator_witness
with type 'a elt := 'a
with type ('a, 'b, 'c) create_options :=
('a, 'b, 'c) Base.Set.Without_comparator.t
val empty : ('a, 'cmp, 'a t) Base.Set.Without_comparator.t
val singleton : ('a, 'cmp, 'a -> 'a t) Base.Set.Without_comparator.t
val union_list : ('a, 'cmp, 'a t list -> 'a t) Base.Set.Without_comparator.t
val of_list : ('a, 'cmp, 'a list -> 'a t) Base.Set.Without_comparator.t
val of_sequence :
('a, 'cmp, 'a Base.Sequence.t -> 'a t) Base.Set.Without_comparator.t
val of_array : ('a, 'cmp, 'a array -> 'a t) Base.Set.Without_comparator.t
val of_sorted_array :
('a, 'cmp, 'a array -> 'a t Base.Or_error.t) Base.Set.Without_comparator.t
val of_sorted_array_unchecked :
('a, 'cmp, 'a array -> 'a t) Base.Set.Without_comparator.t
val of_increasing_iterator_unchecked :
('a, 'cmp, len:int -> f:(int -> 'a) -> 'a t) Base.Set.Without_comparator.t
val stable_dedup_list :
('a, _, 'a list -> 'a list) Base.Set.Without_comparator.t
val map :
('b, 'cmp, ('a, _) t -> f:('a -> 'b) -> 'b 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 argumentSet.Poly.map
-- comparator is polymorphic comparisonFoo.Set.map
-- comparator is Foo.comparator
val filter_map :
('b, 'cmp, ('a, _) t -> f:('a -> 'b option) -> 'b t)
Base.Set.Without_comparator.t
val of_tree : ('a, 'cmp, 'a Tree.t -> 'a t) Base.Set.Without_comparator.t
val of_hash_set :
('a, 'cmp, 'a Hash_set.t -> 'a t) Base.Set.Without_comparator.t
val of_hashtbl_keys :
('a, 'cmp, ('a, _) Hashtbl.t -> 'a t) Base.Set.Without_comparator.t
val of_map_keys :
('a, _, Base.Comparator.Poly.comparator_witness) Base.Map.t ->
'a t
Never requires a comparator because it can get one from the input Map.t
.
val quickcheck_generator :
('a, 'cmp, 'a Quickcheck.Generator.t -> 'a t Quickcheck.Generator.t)
Base.Set.Without_comparator.t