Odoc_model.Names
Typed names for paths, identifiers, references and fragments.
This module contains a module per type of named object in our internal representation of the langage, each containing an opaque type t
. This allows us to ensure that, for example, we never mistake a module name for a module type name.
module type Name = sig ... end
Name is the signature for names that could possibly be internal. Internal names occur when we generate items that don't have a path that will be exposed in the generated HTML, for example, when we are doing generalised opens. The compiler makes sure these new types are removed from the signature, so they should never be externally visible, and an attempt to turn an internal name into a string will result in an exception being thrown.
module type SimpleName = sig ... end
Some named objects can't have internal names, so they have this simpler module.
module ModuleName : Name
module ParameterName : Name
module ModuleTypeName : Name
module ConstructorName : SimpleName
module FieldName : SimpleName
module ExtensionName : SimpleName
module ExceptionName : SimpleName
module ClassTypeName : Name
module MethodName : SimpleName
module InstanceVariableName : SimpleName
module LabelName : SimpleName
module PageName : SimpleName