[Haskell-cafe] Module visibility of data type constructors

Stefan Holdermans stefan at cs.uu.nl
Sun Nov 5 15:51:24 EST 2006


> 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.



More information about the Haskell-Cafe mailing list