"Simon Peyton-Jones" wrote
| 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
Yes, that's right. Why is the report not clear? More precisely, how could I improve it?
I find it a little bit counterintuitive to be able to hide a type constructor but not its data constructors (in particular) because one cannot import a data constructor by simply giving its name in an import specification. Maybe a single sentence which explicates the fact that hiding(T) only hides the type constructor T but not any of the data constructors of T (except if T is also a data constructor in this or any another data type) is sufficient to make this clear. (But maybe I was particularly dumb in this case). Wolfgang -- Wolfgang Lux Phone: +49-251-83-38263 Institut fuer Wirtschaftinformatik FAX: +49-251-83-38259 Universitaet Muenster Email: wlux@uni-muenster.de