anchor.diff:            (token-push-fact new-token (aref existing-fact-vector i)))))
       new-token))
   
  +#+ignore
   (defmethod hash-key ((self token))
     (coerce (token-facts self) 'list))
   
  -#+ignore
   (defmethod hash-key ((self token))
  -  (token-facts self))
  +  (token-hash-code self))
   
   (defmethod make-add-token ((fact fact))
     (token-push-fact (make-instance 'add-token) fact))
  
positive.code:     (aref fact-vector (1- (length fact-vector)))))
  
  (defun token-push-fact (token fact)
    (vector-push-extend fact (slot-value token 'facts))
    token)
  
  (defun token-pop-fact (token)
    (with-slots ((fact-vector facts)) token
      (unless (zerop (fill-pointer fact-vector))
        (aref fact-vector (decf (fill-pointer fact-vector))))))
  
  (defun replicate-token (token &key (token-class nil))
  
negative.code: ;;; File: token.lisp
  ;;; Description:
  
  ;;; $Id: token.lisp,v 1.33 2002/12/03 17:31:09 youngde Exp $
  
  (in-package "LISA")
  
  (defclass token ()
    ((facts :initform
            (make-array 0 :adjustable t :fill-pointer t)
            :accessor token-facts)
     (not-counter :initform 0
                  :accessor token-not-counter)
     (exists-counter :initform 0
                     :accessor token-exists-counter)
     (hash-code :initform (list)
                :accessor token-hash-code)
     (contents :initform nil
               :reader token-contents)))
  
  