After the recent discussion import hiding clauses in import declarations, I was wondering what the meaning of hiding clauses is in the case of algebraic data types (or classes). For instance if a have module A where data T = A | B which entities are imported when I include the declaration import A hiding(T) in a module? The report is not clear about this but I would expect that this imports data constructors A and B into the current module but not the type constructor T -- otherwise, what would be the meaning of import A hiding(T(B))? However, if this is true it is possible to export data constructors without their type via module B(module A) where import A hiding(T) which contradicts the statement in section 5.2 on p.64, that the form module m is equivalent to listing all entities imported from that module, because I cannot list a data constructor (without its type) in an export specification. Wolfgang -- Wolfgang Lux Phone: +49-251-83-38263 Institut fuer Wirtschaftinformatik FAX: +49-251-83-38259 Universitaet Muenster Email: wlux@uni-muenster.de