
20 Jun
2010
20 Jun
'10
2:23 a.m.
On Sat, Jun 19, 2010 at 6:00 PM, Felipe Lessa
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.