(module syntax-indirection mzscheme (require "syntax-errors.scm") (provide make-syntax-indirection read-syntax-indirection) (define (make-syntax-indirection value) (case-lambda [(use) (raise-syntax-error #f "cannot use as an expression" use)] [() value])) (define (read-syntax-indirection id) (unless (identifier? id) (syntax-error id "syntax indirection must be an identifier")) (#%app (syntax-local-value id))) )