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.
While I do agree that qualified names are annoying at times, I think that type directed name disambiguation is a Pandora's box. Furthermore, we already have a mechanism for type based disambiguation, namely good old type classes. For instance, the qualifications required when importing Data.Map are actually a sign that we are lacking proper container type classes à la Edison. There are other possible language extension that may make qualification easier, Pascal's with statement comes to mind. http://freepascal.decenturl.com/with-statement-pascal In Haskell, this would work something like this: histogram xs = with Data.Map foldl' f empty xs where f m x = case lookup m x where Just k -> insertWith x (+1) m Nothing -> insert x 1 m In the scope of with , ambiguous qualifications default to Data.Map . Regards, apfelmus -- http://apfelmus.nfshost.com _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe