anchor.diff:                              (gethash entry placeholder))))
       placeholder))
   
  -(defun (setf hash-get) (val obj path)
  -  "Defines a setf for the hash-get function. Uses hash-get to get all but the
  -  last item in the path, then setfs that last object (either a gethash or an
  -  elt)."
  -  (let ((last-obj (hash-get obj (butlast path)))
  +(defun (setf hget) (val obj path)
  +  "Defines a setf for the hget function. Uses hget to get all but the
  +   last item in the path, then setfs that last object (either a gethash or an
  +   elt)."
  +  (let ((last-obj (hget obj (butlast path)))
           (final (car (last path))))
       (if (numberp final)
           (setf (elt last-obj final) val)
  
positive.code: (defun hash-create (pairs &key (test #'equal))
    "Create a hash table with limited syntax:
  
      (hash `((\"name\" \"andrew\") (\"city\" \"santa cruz\")))
    
    which would otherwise be:
    
      (let ((hash (make-hash-table :test #'equal)))
        (setf (gethash \"name\" hash) \"andrew\")
        (setf (gethash \"city\" hash) \"santa cruz\")
        hash)
    
    yuck city."
    (let ((hash (make-hash-table :test test)))
      (dolist (pair pairs)
        (setf (gethash (car pair) hash) (cadr pair)))
  
negative.code:   (let ((new-hash (make-hash-table :test test :size (hash-table-count hash))))
      (loop for k being the hash-keys of hash
            for v being the hash-values of hash do
            (setf (hget new-hash (list k)) (hget hash (list k))))
      new-hash))
  
  