[r6rs-discuss] [Formal] (r6rs base) must also export _ and ...
at level 1
andre at het.brown.edu
Thu Jan 25 07:46:26 EST 2007
On Thu, 25 Jan 2007, Abdulaziz Ghuloum wrote:
> On Jan 24, 2007, at 7:38 AM, AndrevanTonder wrote:
>> On Wed, 24 Jan 2007, Abdulaziz Ghuloum wrote:
>>> Andre van Tonder wrote:
>>>> It is stated on p.25 that (r6rs base) exports syntax-rules and
>>>> identifier-syntax at level 1. This is insufficient for writing most
>>>> useful macros unless the identifiers ... and _ are also exported for
>>>> level 1.
>>> Three questions:
>>> 1. Why would this be necessary?
>> If they are not exported, how would you propose to handle renaming,
>> prefixing, or excepting them in a client library?
> Your statement originally said that exporting syntax-rules and
> identifier-syntax at level 1 is "insufficient for writing most useful macros
> unless the identifiers ... and _ are also exported for level 1". My
> question was about that statement. I don't see how exporting ... and _ is
> necessary for writing most useful macros. Please explain how the two are
> related. (I don't see the connection between your answer and your original
My assumption was that ... and _ are bound in (r6rs base). If they are
bound, exporting them is necessary for writing most useful macros. It did not
even occur to me originally that an implementor might leave them unbound,
thereby preventing users from being able to do various useful things to them.
Example of useful things:
- If you do not bind _ in (r6rs base), a user cannot easily create an
r5rs-compatibility library where syntax-rules treats _ as an
- If you do not bind => in (r6rs base), a teacher cannot easily create
a teaching language in which cond does not recognize => clauses
(PLT contains such a language).
More information about the r6rs-discuss