Date.Set
Sourceinclude Set_intf.S with module Elt := Elt and module Diff := Diff
include Set_intf.S_plain with module Elt := Elt and module Diff := Diff
include Diffable.S_plain with type t := t and module Diff := Diff
include 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 of_sorted_array :
('a, 'cmp, Elt.t array -> t Base.Or_error.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 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 argumentSet.Poly.map
-- comparator is polymorphic comparisonFoo.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_tree :
('a,
'cmp,
(Elt.t, Elt.comparator_witness) Base.Set.Using_comparator.Tree.t ->
t)
Base.Set.Without_comparator.t
Never requires a comparator because it can get one from the input Map.t
.
val quickcheck_generator :
('a, 'cmp, Elt.t Quickcheck.Generator.t -> t Quickcheck.Generator.t)
Base.Set.Without_comparator.t
include Set_intf.Binable.S with type t := t
include Bin_prot.Binable.S_only_functions with type t := t
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.