Namespaces and namespace hierarchies
Namespaces define the scope, in which names (e.g. type names or extent names) must be unique. For accessing a type in a given namespace, the name must be preceded by a the namespace (hierarchy) name as in program languages like C++.