#lang scheme (define-syntax new:cond (syntax-rules (else) [(_) (void)] [(_ [else else-expr]) else-expr] [(_ [test-expr^ then-expr^] [test-expr then-expr] ...) (if test-expr^ then-expr^ (new:cond [test-expr then-expr] ...))])) (provide #%module-begin #%datum #%app if define (rename-out [new:cond cond]) < quote)