(mac once-only (names . body) (let gensyms (map1 [uniq] names) `(w/uniq ,gensyms `(with ,(list ,@(mappend list gensyms names)) ,(with ,(mappend list names gensyms) ,@body)))))