anchor.diff:  (defgeneric remmove-activations (strategy))
   
   (defclass indexed-priority-list ()
  -  ((priority-list :reader get-priority-list)
  -   (index :initform nil
  -          :accessor get-index)
  +  ((priority-vector :reader get-priority-vector)
  +   (inodes :initform nil
  +           :accessor get-inodes)
      (delta :accessor get-delta)
      (insertion-function :initarg :insertion-function
                          :reader get-insertion-function)
  
positive.code: 
  (defmethod initialize-instance :after ((self indexed-priority-list)
                                         &key (priorities 500))
    (setf (slot-value self 'priority-list)
      (make-array (1+ priorities) :adjustable t :fill-pointer t))
    (setf (slot-value self 'delta (/ priorities 2))))
  
  (defun insert-activation (plist activation)
    (with-accessors ((vector get-priority-list)
                     (index get-index)
                     (activations get-activations)) plist
      (let* ((salience (get-salience (get-rule activation)))
             (slot (+ salience (get-delta plist)))
             (queue (aref vector slot)))
        (setf (aref vector slot)
          (apply (get-insertion-function plist) activation queue))
        (index-salience)
        (setf (gethash (hash-code (get-token activation))) activation))))
  
  (defclass depth-first-strategy (strategy)
    ()
  
negative.code: ;;; resolution strategies for Lisa's RETE implementation. NB: The code here is
  ;;; raw and inefficient; it will change soon.
  
  ;;; $Id: strategies.lisp,v 1.8 2000/12/15 20:38:18 youngde Exp $
  
  (in-package :lisa)
  
  