caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: brogoff@speakeasy.net
To: Xavier Leroy <xavier.leroy@inria.fr>
Cc: "caml-list@inria.fr" <caml-list@inria.fr>
Subject: Re: [Caml-list] recursive modules
Date: Mon, 5 May 2003 09:59:52 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.44.0305050938380.23011-100000@grace.speakeasy.net> (raw)
In-Reply-To: <20030505102121.B23988@pauillac.inria.fr>

On Mon, 5 May 2003, Xavier Leroy wrote:
> The other point worth mentioning is that the detection of ill-founded
> recursive definitions (definitions that have no fixpoint in a
> call-by-value evaluation regime) is not completely static and may
> cause an "Undefined" exception to be thrown at program initialization
> time.  Fully static prevention of ill-founded recursion would, in the
> current state of our knowledge, either rule out too many valuable
> uses, or require major complications in the type system.  The proposed
> approach is a pragmatic compromise rather than a 100% intellectually
> satisfying solution.

It seems like an acceptable compromise. I've only read the note, and I surely 
won't get it until I play with the compiler. One thing that I notice is that 
the scope rule restriction on with type constraints, which adds extra verbosity 
when trying to work around the restriction on module constraints, also adds 
sone extra verbosity to your version of Okasaki's bootstrap heaps. It would 
be nicer to write 

  module rec BE : ORDERED with type t = E | H Elem.t * PrimH.heap = 
    struct
    ... etc., etc., ...

in the same way that it would be nicer to not have to textually copy signatures 
in the workaround. Could that be fixed easily? It looks like it could be fixed 
in the current (nonrecursive) module system pretty easily but I don't know about 
your proposal.

Nice work! This problem is a real pain, and your proposal provides a real 
fix. 

-- Brian

-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners


  parent reply	other threads:[~2003-05-05 16:59 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-05-05  8:21 Xavier Leroy
2003-05-05 11:29 ` Markus Mottl
2003-05-16 16:31   ` brogoff
2003-05-05 12:20 ` John Max Skaller
2003-05-05 16:59 ` brogoff [this message]
2003-08-29 20:17 [Caml-list] Recursive Modules Christopher Dutchyn

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=Pine.LNX.4.44.0305050938380.23011-100000@grace.speakeasy.net \
    --to=brogoff@speakeasy.net \
    --cc=caml-list@inria.fr \
    --cc=xavier.leroy@inria.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).