(module phase mzscheme (provide in-phase1) ;; From Ryan Culpepper: (define-syntax (in-phase1 stx) (syntax-case stx () [(in-phase1 e) (case (syntax-local-context) ((expression) #'(let-syntax ([_ e]) (void))) ((module top-level) #'(begin (define-syntax m (lambda (x) (begin e #'(begin)))) (m))) (else (raise-syntax-error #f "used in wrong context" stx)))])) )