module type Creators_generic =sig
..end
type ('a, 'cmp)
t
type ('a, 'cmp)
set
type ('a, 'cmp)
tree
type 'a
elt
type ('a, 'cmp, 'z)
options
val empty : ('a, 'cmp, ('a, 'cmp) t)
options
val singleton : ('a, 'cmp,
'a elt ->
('a, 'cmp) t)
options
val union_list : ('a, 'cmp,
('a, 'cmp) t list ->
('a, 'cmp) t)
options
val of_list : ('a, 'cmp,
'a elt list ->
('a, 'cmp) t)
options
val of_array : ('a, 'cmp,
'a elt array ->
('a, 'cmp) t)
options
val of_sorted_array : ('a, 'cmp,
'a elt array ->
('a, 'cmp) t Or_error.t)
options
val of_sorted_array_unchecked : ('a, 'cmp,
'a elt array ->
('a, 'cmp) t)
options
val stable_dedup_list : ('a, 'b,
'a elt list ->
'a elt list)
options
val map : ('b, 'cmp,
('a, 'c) set ->
f:('a -> 'b elt) ->
('b, 'cmp) t)
options
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, 'c) set ->
f:('a -> 'b elt option) ->
('b, 'cmp) t)
options
val of_tree : ('a, 'cmp,
('a elt, 'cmp)
tree ->
('a, 'cmp) t)
options