
13 Aug
2004
13 Aug
'04
11:43 a.m.
But that would break existing programs. You would need a language extension so the feature could be selectively enabled.
Yes. Which means I think that you cannot support a closed world, as given by that simple defining rule, without a language extension. The root of the question seems to be what "closed world" means with "when resolving instances" / "at the last possible moment" (if it it was "at the last stage at global level in a compilation unit" then "g" would have type Int->Int). In my view without that simple defining rule it is difficult to come up with a proposal that is simple, sound and gives principal typings (well, with it is already difficult...:-). Cheers, Carlos