Message-Id: <199603111145.MAA27609@givry.inria.fr>
From: Francis Dupont <Francis.Dupont@inria.fr>
To: Tarizzo Martial <tarizzo@worldnet.fr>
Subject: Re: Recursion, exception and continuations
Date: Mon, 11 Mar 1996 12:45:23 +0100
In your previous mail you wrote:
[3] I appreciate the type system of CAML, but is a such system compatible
with access to continuations, as it is possible to do in Scheme ?
=> I disagree Pierre Weis, the answer is yes and no because
of the toplevel. Here is a short summary of the problem:
a continuation is the functional abstraction of a context,
ie for the context C[ ] the associated continuation is fun x -> C[x].
Obviously two types are involved in a context, the hole type and
the embracing type but there is usually only one type in a continuation
(the type of the hole/argument).
It doesn't matter if the continuation is used in a program or in
*one* toplevel statement, but there is a problem if a toplevel statement
produces a continuation used in an other toplevel statement: the type
system can be broken or the extend of the continuation must be
constrained... See SML of New Jersey for correction attempts!
Regards
PS: some continuation constructs have been proposed with different
scope, extend and typing rules and without the toplevel problem,
but there are not the Scheme callcc operator. Some of them can be
expansed in a CPS program of rather the same size (read papers
by Olivier Danvy & all).