Up

Module Core_set_intf

This module defines interfaces used in Core.Std.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).

Signature

module Binable = Binable0
module type Elt = sig .. end
module type Elt_binable = sig .. end
module Map = Core_map
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 (T : T.T2) (Tree : T.T2) (Elt : T.T1) (Cmp : T.T1) (Options : T.T3) (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 'a elt := 'a Elt.t with type 'cmp cmp := 'cmp Cmp.t) : sig .. end
Consistency checks (same as in Container).
module Check_accessors0 (M : Accessors0) : sig .. end
module Check_accessors1 (M : Accessors1) : sig .. end
module Check_accessors2 (M : Accessors2) : 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 (T : T.T2) (Tree : T.T2) (Elt : T.T1) (Cmp : T.T1) (Options : T.T3) (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 'a elt := 'a Elt.t with type 'cmp cmp := 'cmp Cmp.t) : sig .. end
module Check_creators0 (M : Creators0) : sig .. end
module Check_creators1 (M : Creators1) : sig .. end
module Check_creators2 (M : Creators2) : 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 type S0 = sig .. end
module type S0_binable = sig .. end