SETF
setq only takes a symbol as first argument
setf takes a form that if executed would access a value
- called a generalized reference
- accessor if called by itself would retrieve a value
- setf of a generalized reference stores a replacement value
(setq a (list 'red 'green 'blue))
(setf (second a) 'magenta)