[Haskell] Hierarchical module namespace extension notsufficiently flexible

Malcolm Wallace Malcolm.Wallace at cs.york.ac.uk
Tue Mar 8 10:39:23 EST 2005

"Simon Marlow" <simonmar at microsoft.com> writes:

> >   module R( qualified module Q( f,g ) ) where
> > 	f = ...; g = ...
> If we're going to allow (... items ...) at all, then I suggest instead
> that the last example be written:
>    module R( qualified module R(f,g) as Q ) where
>      f = ...; g = ...

I initially understood the first form to mean something different,
although admittedly the original example does not actually illustrate

      module R( f,g, qualified module Q( f,g ) ) where
        import qualified Q (f,g,h)
    	f = ...; g = ...

That is, the subordinate items mentioned in conjunction with the
qualified export are a subset of those imported from Q, not those
defined in R.  Within the subordinate clause of the export list, they
do not need further qualification since they belong unambiguously to Q.


More information about the Libraries mailing list