(mac rfn (name parms . body) `(let ,name nil (assign ,name (fn ,parms ,@body))))
; prints 1..10, each on its own line ((rfn foo (x) (prn x) (if (>= x 10) nil (foo (+ x 1)))) 1)