Then perhaps you can define 'defho in terms of 'mac and 'w/hof, maybe? The Arc solution: throw more macros at it.
Regarding (x . [f it]) :
In canonical arc2, [f it] is (fn (_) (f it)), so (x . [f it]) becomes (x fn (_) (f it)) . In Anarki, [f it] is (make-br-fn (f it)), so (x . [f it]) becomes (x make-br-fn (f it))
This makes the use of [] problematical.
'w/hof is trivially implementable, 'defho much less so due to the syntax.
w/hof is also more general, at the expense of being more talkative.
In fact it might be better to do things this way:
(mac while (cond . body) (w/hof (cond (fn () ,cond) body (fn () ,@body)) ((afn () (when (cond) (body) (self))))))
(mac aif (cond then (o else)) (w/hof (cond ,cond then (fn (it) ,then) else (fn () ,else)) (if cond (then cond) (else))))
Oh. I haven't bothered to learn how to hack the syntax in Arc, so I'll take your word on that.
-----