Module Core_kernel.Core_set_intf

This module defines interfaces used in Core.Set. This module uses the same organizational approach as Core_map_intf. See the documentation in core_map.mli for a description of the approach.

This module defines module types {Creators,Accessors}{0,1,2,_generic,_with_comparator}. It uses check functors to ensure that each module types is an instance of the corresponding _generic one.

We must treat Creators and Accessors separately, because we sometimes need to choose different instantiations of their options. In particular, Set itself matches Creators2_with_comparator but Accessors2 (without comparator).

module Binable = Core_kernel__.Binable0
module Set = Base.Set
module Tree = Set.Using_comparator.Tree
module Container_intf = Base.Container_intf
module Set_intf = Base.Set_intf
module type Elt_plain = Set_intf.Elt_plain
module type Elt : sig ... end
module type Elt_binable : sig ... end
module Without_comparator = Set_intf.Without_comparator
module With_comparator = Set_intf.With_comparator
module Map = Core_kernel__.Core_map
module Continue_or_stop = Container_intf.Continue_or_stop
module Finished_or_stopped_early = Container_intf.Finished_or_stopped_early
module Merge_to_sequence_element = Sequence.Merge_with_duplicates_element
module type Accessors_generic : sig ... end
module type Accessors0 : sig ... end
module type Accessors1 : sig ... end
module type Accessors2 : sig ... end
module type Accessors2_with_comparator : sig ... end
module Check_accessors : functor (T : Core_kernel__.T.T2) -> functor (Tree : Core_kernel__.T.T2) -> functor (Elt : Core_kernel__.T.T1) -> functor (Cmp : Core_kernel__.T.T1) -> functor (Options : Core_kernel__.T.T3) -> functor (M : Accessors_generic with type (a, b, c) options := (a, b, c) Options.t with type (a, b) t := (a, b) T.t with type (a, b) tree := (a, b) Tree.t with type elt := a Elt.t with type cmp cmp := cmp Cmp.t) -> sig ... end

Consistency checks (same as in Container).

module Check_accessors0 : functor (M : Accessors0) -> sig ... end
module Check_accessors1 : functor (M : Accessors1) -> sig ... end
module Check_accessors2 : functor (M : Accessors2) -> sig ... end
module Check_accessors2_with_comparator : functor (M : Accessors2_with_comparator) -> sig ... end
module type Creators_generic : sig ... end
module type Creators0 : sig ... end
module type Creators1 : sig ... end
module type Creators2 : sig ... end
module type Creators2_with_comparator : sig ... end
module Check_creators : functor (T : Core_kernel__.T.T2) -> functor (Tree : Core_kernel__.T.T2) -> functor (Elt : Core_kernel__.T.T1) -> functor (Cmp : Core_kernel__.T.T1) -> functor (Options : Core_kernel__.T.T3) -> functor (M : Creators_generic with type (a, b, c) options := (a, b, c) Options.t with type (a, b) t := (a, b) T.t with type (a, b) tree := (a, b) Tree.t with type elt := a Elt.t with type cmp cmp := cmp Cmp.t) -> sig ... end
module Check_creators0 : functor (M : Creators0) -> sig ... end
module Check_creators1 : functor (M : Creators1) -> sig ... end
module Check_creators2 : functor (M : Creators2) -> sig ... end
module Check_creators2_with_comparator : functor (M : Creators2_with_comparator) -> sig ... end
module type Creators_and_accessors_generic : sig ... end
module type Creators_and_accessors0 : sig ... end
module type Creators_and_accessors1 : sig ... end
module type Creators_and_accessors2 : sig ... end
module type Creators_and_accessors2_with_comparator : sig ... end
module Make_S_plain_tree : functor (Elt : Comparator.S) -> sig ... end
module type S_plain : sig ... end
module type S : sig ... end
module type S_binable : sig ... end