Export lists in modules

Bernard Pope bjpop at csse.unimelb.edu.au
Thu Feb 23 23:32:50 EST 2006

On Thu, 2006-02-23 at 21:04 +0100, Marcin 'Qrczak' Kowalczyk wrote:
> "Simon Marlow" <simonmar at microsoft.com> writes:
> > The main difference is that I'm doing away with parentheses, commas, and
> > export specifiers, and using layout and full declaration syntax instead.
> > (I don't really want to discuss this very rough idea any more though,
> > it's just a distraction, and I'm not sure I like it anyway).
> I like this general idea, I was thinking about something similar
> a long time ago.
> But in case of a large datatype, e.g. an AST, we certainly don't
> want to duplicate it in whole. It should be sufficient in the
> export section.
> So perhaps what is really needed is the ability to split a module
> into a public part and a private part, and allowing to duplicate
> certain definitions in a partial form, e.g. have both 'data Foo'
> and 'data Foo = Con1 | Con2' in the same module. The details are
> not obvious though because the syntax has not been designed with
> this in mind.

It might be useful for people who are interested in this idea to look at
Mercury's module system. It is very similar to the one proposed. Also,
Mercury is quite close to Haskell (type classes and so on). 

Incidentally, I'm told that the design was influenced by Ada.


More information about the Haskell-prime mailing list