package core
Module Set.TreeSource
A Tree.t contains just the tree data structure that a set is based on, without including the comparator. Accordingly, any operation on a Tree.t must also take as an argument the corresponding comparator.
Source
val sexp_of_t :
('elt -> Sexplib0.Sexp.t) ->
('cmp -> Sexplib0.Sexp.t) ->
('elt, 'cmp) t ->
Sexplib0.Sexp.tinclude Set_intf.Creators_and_accessors_generic
with type ('a, 'b) set := ('a, 'b) t
with type ('a, 'b) t := ('a, 'b) t
with type ('a, 'b) tree := ('a, 'b) t
with type ('a, 'b, 'c) create_options :=
('a, 'b, 'c) Base.Set.With_comparator.t
with type ('a, 'b, 'c) access_options :=
('a, 'b, 'c) Base.Set.With_comparator.t
with type 'a elt := 'a
with type 'c cmp := 'c
with module Named := Named
include Set_intf.Accessors_generic
with type ('a, 'b) t := ('a, 'b) t
with type ('a, 'b) tree := ('a, 'b) t
with type 'a elt := 'a
with type 'cmp cmp := 'cmp
with type ('a, 'b, 'c) access_options :=
('a, 'b, 'c) Base.Set.With_comparator.t
with module Named := Named
include Base.Set.Accessors_generic
with type ('a, 'b) t := ('a, 'b) t
with type ('a, 'b) tree := ('a, 'b) t
with type 'a elt := 'a
with type 'cmp cmp := 'cmp
with type ('a, 'b, 'c) access_options :=
('a, 'b, 'c) Base.Set.With_comparator.t
with module Named := Named
include Base.Container.Generic
with type ('a, 'b) t := ('a, 'b) t
with type 'a elt := 'a
Source
val fold_result :
('a, _) t ->
init:'acc ->
f:('acc -> 'a -> ('acc, 'e) Base.Result.t) ->
('acc, 'e) Base.Result.tSource
val sum :
(module Base.Container.Summable with type t = 'sum) ->
('a, _) t ->
f:('a -> 'sum) ->
'sumoverride Container's mem
Source
val union :
('a, 'cmp, ('a, 'cmp) t -> ('a, 'cmp) t -> ('a, 'cmp) t)
Base.Set.With_comparator.tSource
val inter :
('a, 'cmp, ('a, 'cmp) t -> ('a, 'cmp) t -> ('a, 'cmp) t)
Base.Set.With_comparator.tSource
val diff :
('a, 'cmp, ('a, 'cmp) t -> ('a, 'cmp) t -> ('a, 'cmp) t)
Base.Set.With_comparator.tSource
val symmetric_diff :
('a,
'cmp,
('a, 'cmp) t ->
('a, 'cmp) t ->
('a, 'a) Base.Either.t Base.Sequence.t)
Base.Set.With_comparator.tSource
val compare_direct :
('a, 'cmp, ('a, 'cmp) t -> ('a, 'cmp) t -> int) Base.Set.With_comparator.tSource
val is_subset :
('a, 'cmp, ('a, 'cmp) t -> of_:('a, 'cmp) t -> bool)
Base.Set.With_comparator.tSource
val are_disjoint :
('a, 'cmp, ('a, 'cmp) t -> ('a, 'cmp) t -> bool) Base.Set.With_comparator.tSource
val fold_until :
('a, _) t ->
init:'acc ->
f:('acc -> 'a -> ('acc, 'final) Base.Container.Continue_or_stop.t) ->
finish:('acc -> 'final) ->
'finalSource
val iter2 :
('a,
'cmp,
('a, 'cmp) t ->
('a, 'cmp) t ->
f:([ `Left of 'a | `Right of 'a | `Both of 'a * 'a ] -> unit) ->
unit)
Base.Set.With_comparator.tSource
val split :
('a, 'cmp, ('a, 'cmp) t -> 'a -> ('a, 'cmp) t * 'a option * ('a, 'cmp) t)
Base.Set.With_comparator.tSource
val split_le_gt :
('a, 'cmp, ('a, 'cmp) t -> 'a -> ('a, 'cmp) t * ('a, 'cmp) t)
Base.Set.With_comparator.tSource
val split_lt_ge :
('a, 'cmp, ('a, 'cmp) t -> 'a -> ('a, 'cmp) t * ('a, 'cmp) t)
Base.Set.With_comparator.tSource
val to_sequence :
('a,
'cmp,
?order:[ `Increasing | `Decreasing ] ->
?greater_or_equal_to:'a ->
?less_or_equal_to:'a ->
('a, 'cmp) t ->
'a Base.Sequence.t)
Base.Set.With_comparator.tSource
val binary_search :
('a,
'cmp,
('a, 'cmp) t ->
compare:('a -> 'key -> int) ->
Base.Binary_searchable.Which_target_by_key.t ->
'key ->
'a option)
Base.Set.With_comparator.tSource
val binary_search_segmented :
('a,
'cmp,
('a, 'cmp) t ->
segment_of:('a -> [ `Left | `Right ]) ->
Base.Binary_searchable.Which_target_by_segment.t ->
'a option)
Base.Set.With_comparator.tSource
val merge_to_sequence :
('a,
'cmp,
?order:[ `Increasing | `Decreasing ] ->
?greater_or_equal_to:'a ->
?less_or_equal_to:'a ->
('a, 'cmp) t ->
('a, 'cmp) t ->
('a, 'a) Base.Sequence.Merge_with_duplicates_element.t Base.Sequence.t)
Base.Set.With_comparator.tSource
val to_map :
('a, 'cmp, ('a, 'cmp) t -> f:('a -> 'b) -> ('a, 'b, 'cmp) Base.Map.t)
Base.Set.With_comparator.tSource
val quickcheck_shrinker :
('a, 'cmp, 'a Quickcheck.Shrinker.t -> ('a, 'cmp) t Quickcheck.Shrinker.t)
Base.Set.With_comparator.tinclude Set_intf.Creators_generic
with type ('a, 'b) t := ('a, 'b) t
with type ('a, 'b) tree := ('a, 'b) t
with type 'a elt := 'a
with type 'cmp cmp := 'cmp
with type ('a, 'b) set := ('a, 'b) t
with type ('a, 'b, 'c) create_options :=
('a, 'b, 'c) Base.Set.With_comparator.t
include Base.Set.Creators_generic
with type ('a, 'b) t := ('a, 'b) t
with type ('a, 'b) tree := ('a, 'b) t
with type 'a elt := 'a
with type 'cmp cmp := 'cmp
with type ('a, 'b) set := ('a, 'b) t
with type ('a, 'b, 'c) create_options :=
('a, 'b, 'c) Base.Set.With_comparator.t
Source
val of_sorted_array :
('a, 'cmp, 'a array -> ('a, 'cmp) t Base.Or_error.t)
Base.Set.With_comparator.tSource
val of_sorted_array_unchecked :
('a, 'cmp, 'a array -> ('a, 'cmp) t) Base.Set.With_comparator.tSource
val of_increasing_iterator_unchecked :
('a, 'cmp, len:int -> f:(int -> 'a) -> ('a, 'cmp) t)
Base.Set.With_comparator.tThe 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 isFoo.comparator
Source
val filter_map :
('b, 'cmp, ('a, _) t -> f:('a -> 'b option) -> ('b, 'cmp) t)
Base.Set.With_comparator.tSource
val of_hashtbl_keys :
('a, 'cmp, ('a, _) Hashtbl.t -> ('a, 'cmp) t) Base.Set.With_comparator.tNever requires a comparator because it can get one from the input Map.t.
Source
val quickcheck_generator :
('a, 'cmp, 'a Quickcheck.Generator.t -> ('a, 'cmp) t Quickcheck.Generator.t)
Base.Set.With_comparator.t