So, this example works on master, but for reasons you don't like. We can't fix it on 2.0. If you feel that the solution for macro-introduced identifiers in 2.2 is a release blocker, let's open a thread on -devel again and talk about it, see if we can find some solutions :)
In the meantime, closing this one, as there's no 2.0 task and the code "works" in 2.2. Andy On Tue 19 Mar 2013 00:11, Mark H Weaver <m...@netris.org> writes: > Consider the following module: > > (define-module (foo) > #:export (foo)) > > (define-syntax-rule (foo bar) > (begin > (define-syntax-rule (blah x) x) > (define (bar val) (blah val)))) > > and the following session with v2.0.7-204-g1ea3762: > > scheme@(guile-user)> ,use (foo) > scheme@(guile-user)> (foo bar) > scheme@(guile-user)> (bar 5) > ERROR: In procedure #<syntax-transformer blah>: > ERROR: Wrong type to apply: #<syntax-transformer blah> > > Entering a new prompt. Type `,bt' for a backtrace or `,q' to continue. > scheme@(guile-user) [1]> > > Note that it works when the same 'foo' macro is entered directly > at a fresh REPL: > > scheme@(guile-user)> > (define-syntax-rule (foo bar) > (begin > (define-syntax-rule (blah x) x) > (define (bar val) (blah val)))) > scheme@(guile-user)> (foo bar) > scheme@(guile-user)> (bar 5) > $1 = 5 > scheme@(guile-user)> > > Mark