
AntC wrote:
With syntaxless TDNR enabled, the last line could be:
f b c = do { reset b; reset c }
Heck, I didn't think you meant something that radical. So bare name in a function application context is to need disambiguating.
I think you'll find rather a lot of those in existing code. So this is a code-breaking change.
I don't understand your conclusion. The code above, in context, is currently illegal: There are two "reset" functions in scope, and the compiler will ask the programmer to specify which of them they intended to use. Jeremy's proposal, I believe, is that the compiler should pick /the/ possibility that type-checks (f had a type signature that would allow only one combination to work); . Note that this has nothing to do with record fields at all, except that they give rise to a compelling use case. (I'm not endorsing the proposal, just trying to clarify what it is.) Cheers, Bertram