I tried cond-expand, just to see if it worked and no the export clause does not fall through and the symbols are not exported. I can fix this as you say by using the new interface syntax-parameter interface but I'm curious how to be ably to conditionally export symbols depending on the guile-version! /Stefan On Thu, May 17, 2012 at 10:20 AM, Andy Wingo wrote: > On Wed 16 May 2012 23:32, Stefan Israelsson Tampe > writes: > > > (define-syntax guile-stuff > > (lambda (x) > > (syntax-case x () > > (_ > > (let ((q (ver))) > > (cond > > ((eq? q 'v2.0) > > #'(begin 1)) > > ((eq? q 'v2.1) > > #'(begin > > (define-syntax-rule (fluid-let-syntax . l) > > (syntax-parametrize . l)) > > (export fluid-let-syntax))) > > (else (error "not supported version")))))))) > > Here the macro introduces a new identifier, fluid-let-syntax. But its > context is not that of the (guile-stuff) expression. If you did > (datum->syntax 'fluid-let-syntax x) that might work. > > In general cond-expand is better. I just added a guile-2.2 feature on > master. Use that instead. > > But in this case, better to just change both versions to use > syntax-parameterize :) > > Andy > -- > http://wingolog.org/ >