package core

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Core.Map_intfSource

This module defines interfaces used in Map. See those docs for a description of the design.

This module defines module types {Creators,Accessors}{1,2,3,_generic,_with_comparator}. It uses check functors to ensure that each module type 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, Map itself matches Creators3_with_comparator but Accessors3 (without comparator).

Sourcemodule Binable : sig ... end
Sourcemodule Map = Base.Map
Sourcemodule Or_duplicate = Map.Or_duplicate
Sourcemodule With_comparator = Map.With_comparator
Sourcemodule With_first_class_module = Map.With_first_class_module
Sourcemodule Without_comparator = Map.Without_comparator
Sourcemodule type Key_plain = sig ... end
Sourcemodule type Key = sig ... end
Sourcemodule type Key_binable = sig ... end
Sourcemodule type Key_hashable = sig ... end
Sourcemodule type Key_binable_hashable = sig ... end
Sourcemodule Key_bin_io : sig ... end
Sourcemodule type Accessors_generic = sig ... end
Sourcemodule type Accessors1 = sig ... end
Sourcemodule type Accessors2 = sig ... end
Sourcemodule type Accessors3 = sig ... end
Sourcemodule type Accessors3_with_comparator = sig ... end
Sourcemodule Check_accessors (T : Base.T.T3) (Tree : Base.T.T3) (Key : Base.T.T1) (Cmp : Base.T.T1) (Options : Base.T.T3) (_ : Accessors_generic with type ('a, 'b, 'c) options := ('a, 'b, 'c) Options.t with type ('a, 'b, 'c) t := ('a, 'b, 'c) T.t with type ('a, 'b, 'c) tree := ('a, 'b, 'c) Tree.t with type 'a key := 'a Key.t with type 'a cmp := 'a Cmp.t) : sig ... end

Consistency checks (same as in Container).

Sourcemodule Check_accessors1 (M : Accessors1) : sig ... end
Sourcemodule Check_accessors2 (M : Accessors2) : sig ... end
Sourcemodule Check_accessors3 (M : Accessors3) : sig ... end
Sourcemodule type Creators_generic = sig ... end
Sourcemodule type Creators1 = sig ... end
Sourcemodule type Creators2 = sig ... end
Sourcemodule type Creators3_with_comparator = sig ... end
Sourcemodule Check_creators (T : Base.T.T3) (Tree : Base.T.T3) (Key : Base.T.T1) (Cmp : Base.T.T1) (Options : Base.T.T3) (_ : Creators_generic with type ('a, 'b, 'c) options := ('a, 'b, 'c) Options.t with type ('a, 'b, 'c) t := ('a, 'b, 'c) T.t with type ('a, 'b, 'c) tree := ('a, 'b, 'c) Tree.t with type 'a key := 'a Key.t with type 'a cmp := 'a Cmp.t) : sig ... end
Sourcemodule Check_creators1 (M : Creators1) : sig ... end
Sourcemodule Check_creators2 (M : Creators2) : sig ... end
Sourcemodule type Creators_and_accessors_generic = sig ... end
Sourcemodule type Creators_and_accessors1 = sig ... end
Sourcemodule type Creators_and_accessors2 = sig ... end
Sourcemodule Make_S_plain_tree (Key : Comparator.S) : sig ... end
Sourcemodule type S_plain = sig ... end
Sourcemodule type S = sig ... end
Sourcemodule type S_binable = sig ... end
Sourcemodule type For_deriving = sig ... end
OCaml

Innovation. Community. Security.