(mac w/nondestructive (names . body) (if (acons names) (cons `(fn ,names ,@body) (map [list 'deepcopy _] names)) `(let ,names (deepcopy ,names) ,@body)))