1. Overview
  2. Docs
Module type
Class type

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 TypeName : Name
module ClassName : Name