Я работаю над макросом, пытаюсь понять, как избежать расширения определенных форм, например, взять следующее и макрос,
(defmacro and
([] true)
([x] x)
([x & next]
`(let [and# ~x]
(if and# (and ~@next) and#))))
При расширении,
(mexpand-all '(and 1 2 3))
становится,
(let* [and__973__auto__ 1]
(if and__973__auto__
(let* [and__973__auto__ 2]
(if and__973__auto__ 3 and__973__auto__))
and__973__auto__))
В этом случае мне нужно остановить расширение let в let*.