Thu Mar 13 14:59:33 EDT 2008


this worked:

(define-syntax (foo stx)
  (datum->syntax stx '(define bar 123)))

it defines 'bar'. replacing stx with #f doesn't work (no #%app error).
the same thing with #' doesn't work.. apparently, the latter creates
some lexical bindings..

so, the proper way to break hygiene is using 'datum->syntax'.

the thing to look at is build-struct-names from syntax/struct

this seems to work for the current state.ss

        using (->syntax stx <symbol>) with stx the stx object that's
        passed to define-lifted-tx, it seems to work fine. looks like
        the problem was (->syntax #f <symbol>)

in short: the stx object seems to have knowledge of the module's
namespace, can tell whether names are module-local?