[r6rs-discuss] [Formal] Reduce over-specification as well as under-specification.

Felix Klock pfr6rs at pnkfx.org
Thu Nov 16 12:15:24 EST 2006


On Nov 15, 2006, at 11:18 PM, Abdulaziz Ghuloum wrote:

>
> On Nov 13, 2006, at 10:36 AM, William D Clinger wrote:
>
>> The main thing programmers need to know about phase
>> levels is that they matter only for procedural macros
>> and for libraries used by procedural macros.  With the
>> draft R6RS, the easiest way to cope with the phasing
>> problems in portable code is to avoid all use of the
>> (r6rs syntax-case) library.  If that were to remain
>> true in the R6RS, then the R6RS ought to say so.
>
> The above statement is incorrect.  You will have to deal with
> phases whenever you write a macro whether it is written using
> syntax-rules, identifier-syntax, or syntax-case.  I explained
> the detains in my formal comment regarding phases (it did not
> make it to r6rs-discuss yet).

Would you agree that if all that you use is syntax-rules (no syntax- 
case, no identifier-syntax, etc), then the only thing you ever need  
to import for expand is syntax-rules?

If that is the case, then I assert that it will always be sufficient  
to (import r6rs), which imports syntax-rules for expand, and  
therefore programmers will not have to think about phases further.

So Will's statement may need _slight_ revision, but overall including  
such a statement seems sensible; programmers who are writing non- 
procedural macros should not have to think about phases.

-Felix




More information about the r6rs-discuss mailing list