infelicity in module imports
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!
Wolfgang Lux Phone: +49-251-83-38263
Institut fuer Wirtschaftinformatik FAX: +49-251-83-38259
Universitaet Muenster Email: email@example.com