lisp処理系でマクロ展開をコンパイルの前段階の最適化やらの部分でするとき
マクロ展開にevalを使わないと実装できない気がするんだけどどうしたらいい?

(defmacro nil! (x) (list 'setq x nil))
というマクロがあって
(nil! foo)という式を展開するときに
(list 'setq foo nil)これは本当は
(setq foo nil)になってほしい

ここら変でおかしい事に気付いた