Modules and their explicit export lists (are an annoyance)
Felipe Lessa
felipe.lessa at gmail.com
Sun Jun 20 10:28:05 EDT 2010
On Sat, Jun 19, 2010 at 07:23:50PM -0700, Evan Laforge wrote:
> On Sat, Jun 19, 2010 at 6:00 PM, Felipe Lessa <felipe.lessa at gmail.com> wrote:
> > On Sat, Jun 19, 2010 at 08:38:52PM +0200, Christian Höner zu Siederdissen wrote:
> >> But the more important thing is, that it makes extending module
> >> functionality a pain (eg. if a constructor is not exported using (..)).
> >
> > I think this is another problem. Sure, without export lists you
> > *currently* can't hide those constructors. However, languages
> > like Java don't have export lists as well. Imagine if we could
> > write this in Haskell:
> >
> > private data Foo a = Foo a (Foo (Either a a))
>
> But that's just a syntactical difference. I suspect whether you
> prefer to put visibility directly on the definition or collect it all
> in one place depends on personal taste and what you're used to.
That's my point. Hiding a constructor is orthogonal to using
export lists.
Cheers,
--
Felipe.
More information about the Glasgow-haskell-users
mailing list