anchor.diff:          (items (q-items q))
           (index (funcall (q-get-index-fn q) old))
           (set-index-fn (q-set-index-fn q)))
  -    (unless index
  +    (declare (fixnum index))
  +    (when (or (null index)
  +              (= index +not-in-queue+))
         (error 'item-not-found-error))
  -    (funcall set-index-fn old nil)
  +    (funcall set-index-fn old +not-in-queue+)
       (funcall set-index-fn new index)
       (setf (aref items index) new)
       (if (funcall compare-fn new old)
  
positive.code:   (get-index-fn nil :type function)
    (items nil :type array))
  
  (defun make-empty-queue (compare-fn set-index-fn get-index-fn)
    "Return a new empty queue.
  
  compare-fn is a function that takes two arguments and returns a true
  
negative.code: (defun heap-right (i) (declare (fixnum i)) (the fixnum (+ 2 i i)))
  (declaim (inline exchange))
  (defun exchange (heap a b set-index-fn)
    (declare (fixnum a b) (function set-index-fn))
    (rotatef (aref heap a) (aref heap b))
    (funcall set-index-fn (aref heap a) a)
    (funcall set-index-fn (aref heap b) b))
  