In Modula 2 (und bereits in Pascal) lassen sich weitere skalare Typen bilden:
TYPE Farbe = (rot, orange, gelb, gruen, blau, violett);Der Gültigkeitsbereich der so eingeführten neuen Bezeichner ist der zugehörige Block.
Die interne Darstellung der Werte eines Aufzählungstyps braucht den Benutzer nicht zu interessieren. Ein/Ausgabe-Operationen sind nicht standardmäßig vorgegeben.
Auch BOOLEAN = (FALSE, TRUE) kann als Aufzählungstyp aufgefaßt werden, doch gibt es hier noch weitere Operationen, etwa AND, OR und NOT.
TYPE Byte = (0 .. 255);Die Werte eines Bereichstyps sind auch Werte des zugehörigen Grundtyps und verhalten sich genauso; Ein- Ausgabeoperationen sind die des Grundtyps, falls sie dort vorhanden sind. An eine Variable eines Bereichstyps dürfen aber nur Werte aus diesem Bereich zugewiesen werden.