More feedback on Haskell 98 modules from the Programatica Team
Thu, 9 Aug 2001 11:46:40 -0700
| However, I think there is a risk that name clashes may be=20
| introduced. If module A defines and exports f, and imports=20
| (qualified) and exports module B, which also defines f, then=20
| a module C that imports A has two fs, both of which have the=20
| qualified name A.f in C, even though there is no conflict in=20
| A. This suggests that only unqualified imports should be=20
| exported in a "module X" export list entry.=20
The Report already covers this point (though I don't have it to hand).
There must be no name clashes among the *unqualified* names of the
exported things; so in your example, module A's export list is illegal.