I don\'t understand the behavior of set! when its first argument is a sub-expression. For example, what does(set! (sub-expression x) y) do?
set!
(set! (sub-expression x) y)