Another question wrt hiding imports
Wolfgang Lux
wlux@uni-muenster.de
Thu, 12 Jul 2001 15:51:42 +0200
"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