Set.Using_comparator
include Set_intf.Creators_generic
with type ('a, 'b) set := ('a, 'b) t
with type ('a, 'b) t := ('a, 'b) t
with type ('a, 'b) tree := ('a, 'b) Tree.t
with type 'a elt := 'a
with type 'c cmp := 'c
with type ('a, 'b, 'c) create_options :=
('a, 'b, 'c) Base.Set.With_comparator.t
include Base.Set.Creators_generic
with type ('a, 'b) set := ('a, 'b) t
with type ('a, 'b) t := ('a, 'b) t
with type ('a, 'b) tree := ('a, 'b) Tree.t
with type 'a elt := 'a
with type 'c cmp := 'c
with type ('a, 'b, 'c) create_options :=
('a, 'b, 'c) Base.Set.With_comparator.t
val empty : ('a, 'cmp, ('a, 'cmp) t) Base.Set.With_comparator.t
val singleton : ('a, 'cmp, 'a -> ('a, 'cmp) t) Base.Set.With_comparator.t
val union_list :
('a, 'cmp, ('a, 'cmp) t list -> ('a, 'cmp) t) Base.Set.With_comparator.t
val of_list : ('a, 'cmp, 'a list -> ('a, 'cmp) t) Base.Set.With_comparator.t
val of_sequence :
('a, 'cmp, 'a Base.Sequence.t -> ('a, 'cmp) t) Base.Set.With_comparator.t
val of_array : ('a, 'cmp, 'a array -> ('a, 'cmp) t) Base.Set.With_comparator.t
val of_sorted_array :
('a, 'cmp, 'a array -> ('a, 'cmp) t Base.Or_error.t)
Base.Set.With_comparator.t
val of_sorted_array_unchecked :
('a, 'cmp, 'a array -> ('a, 'cmp) t) Base.Set.With_comparator.t
val of_increasing_iterator_unchecked :
('a, 'cmp, len:int -> f:(int -> 'a) -> ('a, 'cmp) t)
Base.Set.With_comparator.t
val stable_dedup_list : ('a, _, 'a list -> 'a list) Base.Set.With_comparator.t
val map :
('b, 'cmp, ('a, _) t -> f:('a -> 'b) -> ('b, 'cmp) t)
Base.Set.With_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, 'cmp) t)
Base.Set.With_comparator.t
val of_tree :
('a, 'cmp, ('a, 'cmp) Tree.t -> ('a, 'cmp) t) Base.Set.With_comparator.t
val of_hash_set :
('a, 'cmp, 'a Hash_set.t -> ('a, 'cmp) t) Base.Set.With_comparator.t
val of_hashtbl_keys :
('a, 'cmp, ('a, _) Hashtbl.t -> ('a, 'cmp) t) Base.Set.With_comparator.t
val of_map_keys : ('a, _, 'cmp) Base.Map.t -> ('a, 'cmp) 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, 'cmp) t Quickcheck.Generator.t)
Base.Set.With_comparator.t