This page is part of the web mail archives of SRFI 93 from before July 7th, 2015. The new archives for SRFI 93 contain all messages, not just those from before July 7th, 2015.
I think the right way to handle internal definitions is that a definition effects the entire lexical scope, but it does not take effect until evaluated. Here is an example: (define x 0) (define (f) (set! x 1)) (define (g) (set! x 3)) (define-syntax foo (syntax-rules () ((foo) (begin (define (pr) (write x)) (pr) (f) (pr) (define x 2) (pr) (g) (pr) (define x 4) (pr))))) (foo) (write x) (newline) should write: 012243 With this there is no early scanning of left hand sides and no restrictions on the placement of definitions or syntax definitions. --Edwin