I understand (and agree) with the desire to have non-portable code fail obviously, but I always interpreted the statement in the basis library spec as explicitly requiring this kind of thing to type check. Isn't that what it means to say that LargeInt is the same as IntInf?