anchor.diff:                (= index +not-in-queue+))
         (error 'item-not-found-error))
       (if (and (> index 0)
  -             (funcall compare-fn item (aref items (heap-parent index))))
  -        (heap-improve-key items index compare-fn (q-set-index-fn q))
  +             (funcall compare-fn item (aref items (parent index))))
  +        (improve-key items index compare-fn (q-set-index-fn q))
           (heapify items index compare-fn (q-set-index-fn q))))
     q)
   
  
positive.code:   ()
    (:documentation "Signaled when an operation depends on an item that was not found in the queue."))
  
  ;;;; Basic Operations on Queues
  
  (defconstant +not-in-queue+ -1)
  
  (defstruct q
    (compare-fn nil :type function)
  
negative.code:     (funcall set-index-fn new index)
      (setf (aref items index) new)
      (if (funcall compare-fn new old)
          (improve-key items index compare-fn set-index-fn)
          (heapify items index compare-fn set-index-fn)))
    q)
  
  