#lang racket (require [only-in plait test test/exn error print-only-errors]) (define-syntax my-let* (syntax-rules () [(my-let* () body) body] [(my-let* ([v0 e0] [v1 e1] ...) body) (let ([v0 e0]) (my-let* ([v1 e1] ...) body))])) (test (my-let* ([x 1] [y (+ x 2)] [x (+ y 3)]) x) 6)