Infer fully qualified names to overcome namespace clashes
If you could interpret Section 5.5.2 of the last published Haskell Report (1998) as meaning: "[i]t is not an error for there to exist names [such as A.f or f] that cannot be ... resolved [by the implementation] ..." Then it would be exceptionally handy for GHC to be able to infer what any human being can infer from most name usage in a function. For example:
import Data.Map import Data.List
runThroughMap :: (Ord k) => Map k a -> Map k b runThroughMap m = map f m
runThroughList :: [a] -> [b] runThroughList l = map g l
GHC will produce an error that this "map" is an ambiguous reference and provides a nice error message containing the fully qualified names. If you accept a permissive interpretation of Section 5.5.2 of the '98 Report, GHC could infer from context that map in
runThroughMap is being used on a Map and therefore should be fully qualifiable and unambiguous; similarly for map used in
Of course, if you disagree with this interpretation for whatever reason--many reasons are practical--feel free to delete this feature request...
W.B.R. -Peter T.