Macro Recursion is not like Function Recursion
`(if (= ,n 0) (car ,list)
(nth* (- ,n 1) (cdr ,list))))
macroexpanding nth* will macroexpand forever when compiled in a function like (defun foo (x l) (nth* x l))
Think of the code you want the macro to expand into