What is nested quasiquote processing rule in Clojure? I am writing a Lisp variant where symbols are hygienic (auto gensymed). I got single level quasiquote working with auto gensym, but I am not sure when two or more level of nesting gets in.
How to process quasiquotes with hygienic symbols which can be nested?
What's the general rule for expanding? Example:
(quasiquote (quasiquote (unquote (quasiquote (unquote (unquote-splice x))))))
(quasiquote (quasiquote (unquote (quasiquote (unquote (unquote x))))))
(def a '(1 2))
``~`~~a