;; read-syntax is expanded at read-time and thus in macros. ;; this works, though! (define-syntax event (er-macro-transformer (lambda (x r t) `(list 'event ,(cadr x) ,(get-line-number x))))) (print (event 'device-added)) (print (event 'device-removed)) $ csc foo.scm && ./foo (event device-added foo.scm:9) (event device-removed foo.scm:10)