(mac rfnwith (name withses . body) (let w (pair withses) `((rfn ,name ,(map car w) ,@body) ,@(map cadr w)))) (mac afnwith (withses . body) `(rfnwith self ,withses ,@body))
-----