## Nice paper on ML's modules

From: "andrew cooke" <andrew@...>

Date: Fri, 9 Dec 2005 09:21:51 -0300 (CLST)

Higher order modules are like functions for types.  So you can have a type
that is the result of a function.

What is that good for?  Well consider how you could make a language that
is extensible.  An extensible language might mean that you can add types.
And one way of doing that would be via a "catch-all" type that had a whole
list of different constructors (Integer of int | Float of float ...).  So
- obviously! - you just need to have some modules that generate types as
lists.

And how would you do that?  Well, there's two common ways of implementing
lists - either with a "next" pointer, or using a "cons" cell.

Now read the first few sections of this paper and have that explained much
more clearly...  (I'm doing so much programming, trying to get my new
project out, that I've not been reading much, but I got through half of
this on the bus last night, and regretted not having more free time)

http://www.eecs.harvard.edu/~nr/pubs/maniaws-abstract.html

From Paul on lambda - http://lambda-the-ultimate.org/node/view/1166

Andrew

_______________________________________________
compute mailing list
compute@...
https://acooke.dyndns.org/mailman/listinfo/compute