[Scheme-reports] Are generated toplevel definitions secret? Andre van Tonder 24 Apr 2011 00:14 UTC

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)
                                  x)))))
      (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
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports