
5 Nov
2006
5 Nov
'06
3:51 p.m.
Slavomir,
module Foo (Bar) where data Bar = Bar
In ghc this allows me to use Bar, the type constructor, in another module, although it shouldn't be visible outside Foo. On the other hand, if I change Bar's definition as:
data Bar = Baz
Baz isn't visible outside Foo.
On terminology: in data T = D T is called a type constructor and is called a *data* constructor. Cheers, Stefan