Problem:
(defun proba1 (li) (first (second li)))
(defparameter li (list 1 (list 2) 3))
(setf (first (second li)) 1)
( setf (proba1 li) 1) ; result is an error
The question is, how can the last command cause an error, when the one before it does not, and it does the same thing (but trough a function) ?