anchor.diff:     They must be added manually. Numerical indices in the extension portion of
      the path will result in an error."
     (let ((path (if (listp path) path (list path))))
  -    (multiple-value-bind (value leftover) (hget/extend obj path)
  +    (multiple-value-bind (value leftover) (%hget-core obj path)
         (if leftover
  -          )
  +          (let ((current value))
  +            (when (some #'numberp leftover)
  +              (error "Number in hget/extend path list, but hget/extend won't create sequences"))
  +            (dolist (key (butlast leftover))
  +              (setf (gethash key current) (funcall new-hash-func))
  +              (setf current (gethash key current)))
  +            (setf (gethash (car (last leftover)) current) val))
  +          (setf (hget obj path) val)))))
   
   
   (defun hash-copy (hash &key (test #'equal))
  
positive.code:    which would return 4 (1st index of list stored under key 'lol of the hash
     table). Simplifies traversing responses from decoded JSON objects by about a
     trillion times."
    (let ((placeholder obj))
      (dolist (entry (if (listp path) path (list path)))
        (setf placeholder (if (numberp entry)
                              (elt placeholder entry)
                              (gethash entry placeholder))))
      placeholder))
  
  (defun (setf hget) (val obj path)
    "Defines a setf for the hget function. Uses hget to get all but the
  
negative.code:    On its own, hget/extend doesn't extend anything, used with setf, it will
     pad out a missing tree with new hash tables, placing the value in the
     bottom-most hash table."
    (multiple-value-bind (value leftover) (%hget-core obj path)
      (if leftovers
          (values nil leftover)
          value)))
  
  (defun (setf hget/extend) (val obj path
                             &optional (new-hash-func #'make-hash-table))
  