Malcolm Wallace wrote

> Currently, you are permitted to write
> 
>     import A hiding (f)
>     import B as A (f)
> 
> and this means that everything exported from module A is visible,
> with the exception that function `f' is overridden by a different
> definition from module B.  Here, a reference to `A.f' is resolved
> unambiguously to `B.f'.

In my understanding of the report, this is not true. Quoting from section 
5.3 of the report 

  "The hiding clause only applies to unqualified names. In the previous
   example, the name M.C is brought into scope."

Thus, in your example, the declaration import A hiding (f) will bring 
A.f into scope and thus A.f is ambiguous!

Regards
Wolfgang


--
Wolfgang Lux                              Phone: +49-251-83-38263
Institut fuer Wirtschaftinformatik          FAX: +49-251-83-38259
Universitaet Muenster                 Email: [EMAIL PROTECTED]



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

Reply via email to