2009/7/28 Sittampalam, Ganesh <ganesh.sittampa...@credit-suisse.com>: > Cale Gibbard wrote: > >> There was a great related idea on #haskell the other day: Make >> explicit qualification unnecessary whenever there is a *unique* >> choice of module qualifications from those imported which would make >> the expression typecheck. Ambiguities would still need to be >> qualified, but I feel that this would eliminate 99% of all ugly >> qualified names from code. It would be especially good in the case of >> infix operators, which as far as I know, nobody actually enjoys >> qualifying explicitly. >> > [...] >> What do people think of this idea? Personally, it really annoys me >> whenever I'm forced to give explicit module qualifications, and I >> think this would really help. It would also subsume the >> DisambiguateRecordFields extension rather handily. > > I think this idea would severely damage compositionality. One example of > this is that it would make it substantially less likely that > subexpressions could be abstracted into a separate declaration without > giving a type signature to fix the type of the new declaration. > > Ganesh
Ah, now that does seem a rather good point, the worry being that generalisation happens at the top of that new declaration, thereby suddenly making more than one of the options typecheck, even though the function/value being defined is still used at the appropriate type. That might be enough of a hindrance to kill the idea, yeah, though I wonder exactly how often it would happen relative to the annoyance of always having to make the obvious qualifications. It would be nice to have as an extension at least, I think, to get a sense for this. I wouldn't advocate putting anything in a standard which we haven't actually tried of course. (However, I also think we should also have a bit less respect in regard to keeping things in line with the standard, so long as a compliant implementation exists...) - Cale _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe