More feedback on Haskell 98 modules from the Programatica Team

Simon Peyton-Jones simonpj@microsoft.com
Thu, 9 Aug 2001 11:46:39 -0700


| > |    Program 2:  module A(module B, ...) where
| > |    ~~~~~~~~~~   import qualified B
| > |                 ... code that doesn't import B ...
|=20
|         [...]
|=20
| > I don't think it should matter whether B is imported=20
| qualified or not;=20
| > I propose to remove the *unqualified* adjective in the above quote.
|=20
| ...but only allow qualified access to B by importers of A, right? I.e.
|         import A
|         B.b -- okay
|         b   -- not okay

Wrong, and I hope that the report is already unambiguous on this point.
If you say 'import A' then you can refer to "A.f" or "f" but definitely
not
"B.f".  The module qualifier is the name of the module named in the
import
statement (or its "as" alias), not the name of the module where it was
originally
defined.

Simon