macroの展開順番

arc.arcのソースを見たらcomposeの下でw/uniqとかaifを定義しているからuniqとかifを使っているようだ。
意図してのことなのか。

macroは評価順を気にする必要があるのか。

arc.arcの一番下に下記を置いたら一応動いた。
idfnのところってどういう意図なんだろうなぁ。

(mac ncompose args
  (w/uniq g
    `(fn ,g
       ,*1
               `(apply ,(car fs) ,g)))
         args))))

*1:afn (fs) (aif (cdr fs) (list (car fs) (self it