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