Lisp comum, referência ao valor e valor real

Considere este trecho de código:

(defvar lst '(1 1))

(defmacro get-x (x lst)
  `(nth ,x ,lst))

(defun get-y (y lst)
  (nth y lst))

Agora, suponha que eu queira alterar o valor dos elementos da lista chamados lst, acarr com get-x e a cdr com get-y. Enquanto tento alterar o valor com get-x (com setf) tudo corre bem, mas se eu tentar com get-y sinaliza um erro (encurtado):

; pegou STYLE-WARNING:; função indefinida: (SETF GET-STUFF)

Por que isso acontece

Eu suspeito que isso acontece porque a macro simplesmente se expande e a função nth simplesmente retorna uma referência ao valor de um elemento na lista e a função, por outro lado, avalia a chamada de função para nth e retorna o valor do valor referenciado (parece confuso

Estou correto em minhas suspeitas? Se eu estiver certo, como saberemos o que é simplesmente uma referência a um valor e a um valor rea

questionAnswers(2)

yourAnswerToTheQuestion