"Simon Marlow" <[EMAIL PROTECTED]> writes:

> Simon Peyton Jones writes:
> 
> > In short, an import *always* brings the entire *qualified* set of
> > names into scope. Hiding and revealing applies only to unqualified
> > names. I must say that I thought GHC implemented this rule; if not I
> > should fix it.
> 
> That's not my reading of the report, and it's not what GHC implements.
> 
>       import A (f)
> 
> brings only f and A.f into scope.

Whatever the correct version of this without the `qualified' term, the
current GHC behaviour (and I'll confess my reading of the standard up
until I spotted this discussion) that allows me to replace

  import qualified Foo (x, y, z)

with

  import qualified Foo (x, y)
  import qualified FooFixed as Foo (z)

to substitute a different module's z as Foo.z is *very* useful in
practice. It seems a pity that

  import qualified Foo hiding (z)
  import qualified FooFixed as Foo (z)

doesn't also do the natural thing at the moment. (It currently just
ignores the `hiding (z)' so Foo.z is ambiguous.)

Cheers,
Chris.

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to