Earlier quoted context omitted.
Wirth removed this again in Oberon, because experience with Pascal and Modula showed that it is not worth it.
Not sure that is the actual reason. (Also define worth it) Wirth had developed that original, but misguided (IMO) notion that the faster a compiler can compile itself the better it is. Consequently he has removed a lot from latest iterations of its languages/compilers Pascal had an enum-like feature we could define an enumerated type. Wirth removed it because... `CONST` should be enough for everyone. Obviously it has…
(Of course, it’s literally impossible to make polymorphic range bounds work completely, due to the undecidability of Peano arithmetic. The most convincing attempt I’ve seen that doesn’t just go full dependent types on you is ATS, and even that is not exactly the friendliest of environments.)
Another system whose evolution was explicitly guided by self-compilation speed is Chez Scheme, and it’s a fine one. Generally it seems to me that it’s a valid optimization principle, but not a global one: you can fall into an unfortunate local minimum if you start in the wrong place. ... Well, so what, it’s not like there are any infallible design principles in programming.