[R6RS] safe and unsafe; declarations

William D Clinger will at ccs.neu.edu
Tue Feb 28 16:30:47 EST 2006


Kent wrote:
> 1. You say that "implementation-specific declarations are likely to have
> static rather than dynamic scope."  What about the standard declarations?
> If static, will they be hygienic in the sense that a declaration
> introduced by a macro affects only the code introduced by that macro?

First I should fix an ambiguity in my position paper.
When I wrote

    The variable-specific declarations of an R5RS <body>
    may refer only to the variables bound by the binding
    construct that immediately surrounds the <body>.

I meant that the variables mentioned by an inline declaration,
and the variables that follow a <typespec>, must be bound by
the binding construct that immediately surrounds the body.
The variables that appear as a <bound> or <rtd> within a
<typespec> should not be so constrained.

It seems to me that all of these variables, both those that
appear within a <typespec> and those that follow a <typespec>,
should be resolved according to the usual rules for variable
references.

The keywords that can appear within a declaration (unsafe,
safety, fast, small, debug, inline, type, number?, complex?,
real?, etc) should be resolved according to the usual rules
for keywords such as COND's ELSE keyword.

Will



More information about the R6RS mailing list