title: defining setf-expanders in Common Lisp
body: <p>Here's the thing: I don't "get" setf-expanders and would like to learn how they work.</p>
  
  <p>I need to learn how they work because I've got a problem which seems like a typical example for why you should learn setf-expanders, the problem is as follows:</p>
  
  <pre><code>(defparameter some-array (make-array 10))
  
  (defun arr-index (index-string)
    (aref some-array (parse-integer index-string))
  
  (setf (arr-index "2") 7) ;; Error: undefined function (setf arr-index)
  </code></pre>
  
  <p>How do I write a proper setf-expander for ARR-INDEX?</p>