;;; Variables that are define-for-syntax'd inside a module are not ;;; visible to eval inside macro calls in the module. But it works ;;; outside a module. (module m (print-syntax-var) (import scheme (chicken syntax)) (define-syntax print-syntax-var (ir-macro-transformer (lambda (form inject compare) (print (eval (cadr form))) #f))) (define-for-syntax foo (* 21 2)) ;; unbound variable: m#foo (print-syntax-var foo) ; <-------- ) (import m) (define-syntax print-syntax-var2 (ir-macro-transformer (lambda (form inject compare) (print (eval (cadr form))) #f))) (define-for-syntax bar (+ 121 2)) ;; But this works (print-syntax-var2 bar) ; <-------- ;; Even this works (print-syntax-var bar) ; <--------