caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Pierre Letouzey <Pierre.Letouzey@lri.fr>
To: David Monniaux <David.Monniaux@ens.fr>
Cc: Coq <coq-club@pauillac.inria.fr>, caml-list <caml-list@yquem.inria.fr>
Subject: Re: [Coq-Club] camlp4 rewrites
Date: Thu, 24 Feb 2005 22:45:52 +0100 (CET)	[thread overview]
Message-ID: <Pine.LNX.4.44.0502242206430.8231@pc8-142> (raw)
In-Reply-To: <421E3AEC.2080200@ens.fr>



Hello David,

On Thu, 24 Feb 2005, David Monniaux wrote:

> I'm currently playing with Coq and extraction, and I'm having the 
> following problems:
> * Since the list constructor of standard OCaml (infix ::) is not (yet) 
> usable as a prefix ( :: ), I cannot just tell Coq to extract lists to 
> OCaml lists. (Future OCaml versions will allow prefix ( :: ), I'm told.)

Yes, Yves Bertot has come long ago with the same problem, and I remember 
having submitted a feature-wish to the Ocaml team.

> * OCaml compiles match e with true -> x1 | false -> x2 less efficiently 
> than if e then x1 else x2 (bug report filed, but not fixed so far).
> 
> Unless I'm greatly mistaken, this can be fixed by a mere syntactic 
> transformation using Camlp4. I suppose I'm not the first person to have 
> encountered these problems... So has anybody done the necessary Camlp4 
> scripts? :-)
>

Indeed, I've got such a camlp4 translator. I do not advertize it much, 
because it's not very robust. In particular, if you have defined your own 
customized "list" datatype or reused any of the Coq standard library 
names, that will lead to problems. Nevertheless, in normal situation, it 
will do what you expect. The script (containing instructions) is:

http://www.lri.fr/~letouzey/download/pp_extract.ml

In particular, there is a portion to uncomment if you want the sumbool 
type (left|right) to be translated to boolean and hence take advantage
of "if ... then ... else" syntax.

Cheers,

Pierre


  reply	other threads:[~2005-02-24 21:45 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-02-24 20:37 David Monniaux
2005-02-24 21:45 ` Pierre Letouzey [this message]
2005-02-24 22:23 ` [Caml-list] " Martin Jambon

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.0502242206430.8231@pc8-142 \
    --to=pierre.letouzey@lri.fr \
    --cc=David.Monniaux@ens.fr \
    --cc=caml-list@yquem.inria.fr \
    --cc=coq-club@pauillac.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).