Frank Heckenbach wrote:
... snip ...
Apart from that, it should be something like `MaxWord' isntead of `MaxInt' (GPC doesn't actually have `MaxWord', but the more general `High (TypeName)', BTW).
Or did you really mean MaxInt only? If so, this might explain some of our differences WRT unsigned types recently. The point of using unsigned types is usually not to disallow negative values (where a proper integer subrange such as `0 .. MaxInt' would do well), but to have a bigger positive range.
IMO for most purposes having only maxint will do very well. There are the exceptions, which can be handled by maxword (if there is an unsigned type). The other things that are missing from the original Pascal are ord(maxchar), and maxset, together with the ability to convert an integral value into the corresponding enumerated value, i.e. the inverse of ord. chr only functions for chars. The char type could have been defined as a predefined enumeration, which would have had advantages and disadvantages. Minint is another sore point.
Unfortunately once extensions, whether good or bad, get into a language it is very hard, if not impossible, to weed them out. OTOH extensions implemented as procedures are relatively easy to manipulate.
End of daydreams, for now.