anchor.diff:          (%node-cut queue node parent)
           (%node-cascading-cut queue parent))
         (setf (min-node-of queue) node)
  -      (qpop queue)
  +      (%queue-pop queue nil)
         (node-value node))))
  +
  +;;; ---------------------------------------------------------------------------
  +
  +(defmethod queue-delete ((queue priority-queue) node)
  +  (%queue-delete queue node))
   
   ;;;
   ;;; Printing and mapping
  
positive.code: ;;; ---------------------------------------------------------------------------
  
  (defun %queue-push (queue element rnode)
    (declare (optimize (debug 3)))
    (let ((min (min-node-of queue)))
      (incf (queue-size queue))
      (flet ((get-node (node)
  	     (cond ((queue-node-p node)
  		     (setf (node-value node) element
  			   (node-degree node) 0)
  		     node)
  		   (t (make-node :value element
  				 :degree 0)))))
        (if min
  
negative.code:   (cond ((funcall (queue-comparison queue) newkey (node-value node))
  	 (queue-decrease queue node newkey))
  	(t
  	 (%queue-delete queue node)
  	 (%queue-push queue newkey node))))
  
  ;;; ---------------------------------------------------------------------------
  
  (defun %queue-delete (queue node)
    (unless (queue-node-p node)
      (setf node (queue-find queue node)))
    (when (queue-node-p node)
  