caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jeremy Bem <jeremy1@gmail.com>
To: bluestorm <bluestorm.dylc@gmail.com>
Cc: caml-list List <caml-list@yquem.inria.fr>
Subject: Re: [Caml-list] Llama Light: a simple implementation of Caml
Date: Sun, 29 Aug 2010 14:42:25 -0400	[thread overview]
Message-ID: <AANLkTinf_1XtrHvLN8eZq9wUh2GRvKNF3sTavHAQGfi1@mail.gmail.com> (raw)
In-Reply-To: <AANLkTi=tNfYDvaJk5AL1T+d8f-UGiOAJKQ=FqGLS+jcO@mail.gmail.com>

[-- Attachment #1: Type: text/plain, Size: 1691 bytes --]

Now that I'm not in a hurry to get a bugfix out, I thought I'd reflect at
greater length on the question about let-generalization.

An easily overlooked feature of Llama Light is that it is written in Llama
Light.  The fact that this substantial codebase can be written without
let-generalization (and hardly any changes) supports the thesis of that
paper and , in my opinion, further demonstrates that explicit polymorphism
(which has its own complexities) is not even necessary to redeem anything.

The most intrusive changes were to the following not-that-common idiom: "let
raise_foo x y = raise (Foo (x, y)) in ..." which is then used in multiple,
incompatible locations. The workaround is simply "let make_foo x y = Foo (x,
y) in ..." which is then raised explicitly.

I confess however that the "Scanf" module has not been ported due to a
complex use of let-generalization which I have not yet managed to pull apart
(anyone want to contribute? ;-).

And yes, this is relevant to my (more theoretical) work (although I could
certainly live with a system that had let-generalization).  In particular
HOL, higher-order logic, does not have it, and because of this, HOL can be
interpreted in weak versions of set theory that are easily trusted.

As for the location in the documentation, I'll consider changing it...but
the basic idea was to write a page that would make sense for non-OCaml
users. For comparison, the OCaml manual mentions *nowhere* that let *is*
generalized :)

Please keep the bug reports (and non-bug reports) coming!  The toplevel bug
was due to overzealous last-minute Makefile pruning...but that's no excuse,
I ought to have a real testing system.

Thanks,
-Jeremy

[-- Attachment #2: Type: text/html, Size: 1951 bytes --]

  reply	other threads:[~2010-08-29 18:42 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-29  5:42 Jeremy Bem
2010-08-29 10:52 ` [Caml-list] " bluestorm
2010-08-29 16:37   ` Jeremy Bem
2010-08-29 18:42     ` Jeremy Bem [this message]
2010-08-30 10:57     ` ivan chollet
2010-08-30 15:57       ` Jon Harrop
2010-08-30 17:09         ` ivan chollet
2010-08-30 17:39           ` Jon Harrop
2010-09-01  6:21             ` ivan chollet
     [not found]     ` <AANLkTikbSKCiXVMNsp9DxkW1FxzTFTxDhE=gWPxnqyJ3@mail.gmail.com>
     [not found]       ` <AANLkTi=dVrqaMchpvPsipasevtNn4Wz_6MWq6nUXjD8E@mail.gmail.com>
     [not found]         ` <AANLkTi=G2e_6Tn5cOQ5OOPhTLPk6Lsqx2hazt+O+H7gH@mail.gmail.com>
2010-08-30 20:49           ` Jeremy Bem
2010-08-29 13:00 ` ivan chollet

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=AANLkTinf_1XtrHvLN8eZq9wUh2GRvKNF3sTavHAQGfi1@mail.gmail.com \
    --to=jeremy1@gmail.com \
    --cc=bluestorm.dylc@gmail.com \
    --cc=caml-list@yquem.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).