INTEGER | CARDINAL | BOOLEAN | CHAR (* Built-in *)
"{" <id>"," <id>"," ... "}" ";" (* Enumerated types *)
"[" <lo>..<hi> "]" ";" (* Subrange types *)
Ordinal types denote sets of values in which each value has a unique successor.
TYPE Day = {Sunday, Monday, Tuesday, Wednesday, Thursday,
Friday, Saturday};
Values of an enumeration are specified as <typename>.<value>: for
example, Day.Sunday rather than just Sunday. Thus, you
should keep enumeration type names short.
TYPE Digit = [0 .. 9]; (* subrange of INTEGER *)
WeekDay = [Day.Monday .. Day.Friday]; (* subrange of Day *)