package core

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

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).

module Binable : sig ... end
module Map = Base.Map
module Or_duplicate = Map.Or_duplicate
module With_comparator = Map.With_comparator
module With_first_class_module = Map.With_first_class_module
module Without_comparator = Map.Without_comparator
module type Key_plain = sig ... end
module type Key = sig ... end
module type Key_binable = sig ... end
module type Key_hashable = sig ... end
module type Key_binable_hashable = sig ... end
module Key_bin_io : sig ... end
module type Accessors_generic = sig ... end
module type Creators_generic = sig ... end
module type Creators_and_accessors_generic = sig ... end
module Make_S_plain_tree (Key : Comparator.S) : sig ... end
module type S_plain = sig ... end
module type S = sig ... end
module type S_binable = sig ... end
module type For_deriving = sig ... end
module type For_deriving_stable = sig ... end