[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Scheme-reports] Are generated toplevel definitions secret?

R5RS didn't specify this, which was always a very annoying obstacle to 
portability.  E.g.,

    (define x 1)
    (let-syntax ((foo (lambda (e)
                        (syntax (begin
                                  (define x 2)
      (foo))  ;==> 2
    x         ;==> NOT SPECIFIED IF IT SHOULD BE 1 or 2

It seems from my reading on p. 15 that R7RS doesn't specify it either.

In otehr words, definitions introduced in macros can possibly shadow toplevel 
bindings, which is a major obstacle to safe hygienic macro programming.

Scheme-reports mailing list