(define-syntax while (syntax-rules () [(_ cond act) (let loop ([c cond] [a act]) (if c (loop c a)))]))