| Even with option 2, there is scope for confusion. "Import"
| without "qualified", imports both qualified and unqualified
| names, but adding the word "qualified" doesn't make any
| difference to the position of qualified names, but instead
| silently fails to import unqualified names.
True
| There is still a
| strange asymmetry, too. Whereas adding "qualified" to "import
| Modname ( a, b, c)" doesn't change which entities are
| imported, just the ability to refer to them by unqualified
| names, adding qualified" to "import Modname hiding ( a, b,
| c)" has the effect of importing everything that was previously hidden.
Not so. I hope the Report now unambiguously states that
import M hiding (a,b,c)
import qualified M hiding(a,b,c)
imports exactly the same entities (namely all that M exports
except a,b,c), only in the latter case only the qualified names are
brought into scope.
Can you suggest a way I could state it more clearly in the Report?
| Personally, I think the right solution is to import entire
| modules (the exported parts) qualified, and optionally to
| allow unqualified reference to some or all names, with a syntax like
| import modid [as modid] [unqualifying ( [all except]
| impspec] | all)
|
| but it's probably too late for this.
Dead right!
Simon
_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell