[R6RS] safe and unsafe; declarations
William D Clinger
will at ccs.neu.edu
Tue Feb 28 16:30:47 EST 2006
> 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
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.
More information about the R6RS