Module Nuscrlib.Names

Identifiers and Namespaces

module type UntaggedName = sig ... end

An UntaggedName is a module type, used as a basis to create TaggedName. A name is used to store identifiers of various kinds, including a string that is the identifier itself, and a location of its occurence.

module type TaggedName = sig ... end

A TaggedName is a module type to represent names of different kinds. One can use Make () to create a new namespace module, so that different namespaces can be properly distinguished at the type level

module Make () : TaggedName

Creates a new namespace module