Module Elements.Base
This module contains types denoting the various elements found in the language, e.g. values, modules, module types, classes, etc.
Each type consists of just a single nullary constructor - they are essentially type-level tags.
Types denoting the implementation/interface dichotomy.
type impl = | ImplImplementation level type tag.
type intf = | IntfInterface level type tag.
Primary language constructs - these types are prefixed with an underscore in order to prevent their names clashing with keywords.
type _structure = | Structure
type _structure_type = | StructureType
type _functor = | Functor
type _functor_type = | FunctorType
type _parameter = | Parameter
type _t = | Ex : _ t -> _tThe existentially quantified abstract type of language elements.
val equal : 'a t -> 'b t -> boolEquality between two abstract language element values.
Pretty printer for element kinds.
Pretty printer for existential element kinds.
exception KindMismatch of stringException indicating that a value is not the right kind of element (value, module, etc.)