(define-syntax glue-macro (syntax-rules () ((_ name var-name var-value) (define-syntax name (syntax-rules (var-name) ((_ expression) (worker-macros bind var-name var-value expression))))))) (define-syntax worker-macros (syntax-rules (inline bind) ((_ inline name expression) (name expression)) ((_ bind var-name var-value expression) (let-syntax ((f (syntax-rules () ((_ expression) (let ((var-name var-value)) expression))))) (f expression) )))) (glue-macro x y 1) (print (worker-macros inline x (+ y y)))