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