caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Claudio Russo <crusso@microsoft.com>
To: Brian Rogoff <bpr@best.com>, Xavier Leroy <Xavier.Leroy@inria.fr>
Cc: Alain Frisch <frisch@clipper.ens.fr>, Caml list <caml-list@inria.fr>
Subject: RE: first class modules (was: alternative module systems)
Date: Wed, 10 Jan 2001 02:32:43 -0800	[thread overview]
Message-ID: <112C6E8A1B25D34BB27D48D2FD2E96CFC9DED1@TVP-MSG-02.europe.corp.microsoft.com> (raw)


> > > a few month ago, Markus Mottl pointed to this mailing 
> list the work by
> > > Claudio Russo on first class modules. There were no 
> answer about plans to
> > > implement such a system for OCaml.
> > 
> > Well, it seems like Russo's first-class modules could be added with
> > relatively little effort, if there is a sufficient need for them.
> 
> Does this include the recursive modules aspect of Moscow ML 
> too? That's
> where I feel the shoe pinching. I realize that at least one 
> big name in
> the ML community dislikes the notion and admittedly my main 
> issue could be 
> resolved by a recursion between a type definition and a 
> module but it can
> also be fixed with recursive modules. The problems arise 
> fairly frequently.

The discussion is about first-class modules only, I think. Recursive
modules are
a completely separate issue. You can support either without the other.
Although Moscow supports recursive structures, their status is
"experimental", 
but I thought adding something simple was better than nothing at all. 
Recursive functors should be an easy generalisation of recursive
structures;
I didn't put them in because I couldn't find any nice examples (but I
didn't look very hard either).

> Do the implementors have any impressions as to whether the 
> Moscow ML approach or
> the "mixin module" approach discussed here will be used to 
> address this
> problem? 

Has the mixin module stuff been formalised enough for actual
implementation? Moscow's recursive modules have the advantage that they
leverage many of the concepts already existing in the Definition. If I
recall correctly, they require one new kind of semantic object, a simple
generalisation of enrichment, and two new syntactic constructs with
associated evaluation and typing rules. Current main drawbacks: heavy
syntax requiring forward declarations,
 no support for cross-compilation-unit recursion and recursion on module
terms requires a dynamic check for each
forward reference (this is because the implementation imposes no
restriction on whether the recursion is safe or not, forcing a dynamic
check for definedness). (BTW, the distribution has a minor bug but this
is fixed for the next release.)

Cheers,

Claudio
> -- Brian
> 
> 



             reply	other threads:[~2001-01-10 18:51 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-01-10 10:32 Claudio Russo [this message]
2001-01-10 21:34 ` first class, recursive, mixin modules (was: RE: first class modules) Alain Frisch
  -- strict thread matches above, loose matches on Subject: below --
2001-01-09 13:36 first class modules (was: alternative module systems) Claudio Russo
2001-01-08 15:11 Claudio Russo
2001-01-08 14:59 Claudio Russo
2001-01-08 13:48 Claudio Russo
2001-01-08 10:45 Claudio Russo
2001-01-08 12:17 ` Alain Frisch
2001-01-07  0:20 Alain Frisch
2001-01-07 23:26 ` Markus Mottl
2001-01-08 10:42 ` Xavier Leroy
2001-01-10  0:40   ` Brian Rogoff

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=112C6E8A1B25D34BB27D48D2FD2E96CFC9DED1@TVP-MSG-02.europe.corp.microsoft.com \
    --to=crusso@microsoft.com \
    --cc=Xavier.Leroy@inria.fr \
    --cc=bpr@best.com \
    --cc=caml-list@inria.fr \
    --cc=frisch@clipper.ens.fr \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).