Unless I'm missing something, the (define-syntax def ...) example should read: (def f (x) (+ x 42)) Currently, 42 is 32, which is true only for large values of 32.