infelicity in module imports

Wolfgang Lux wlux@uni-muenster.de
Wed, 04 Jul 2001 18:59:23 +0200


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: wlux@uni-muenster.de