anchor.diff:  ;;; File: token.lisp
   ;;; Description:
   
  -;;; $Id: token.lisp,v 1.9 2002/09/10 19:34:44 youngde Exp $
  +;;; $Id: token.lisp,v 1.10 2002/09/11 01:50:24 youngde Exp $
   
   (in-package "LISA")
   
  
positive.code: (defun replicate-token (token)
    (let ((new-token (make-instance (class-of token))))
      (with-slots ((new-fact-vector facts)) new-token
        (with-slots ((existing-fact-vector facts)) token
          (dotimes (i (length existing-fact-vector))
            (vector-push-extend (aref existing-fact-vector i) new-fact-vector))))
      new-token))
  
  (defun make-add-token (fact)
    (make-instance 'add-token :fact fact))
  
  (defun make-remove-token (fact)
    (make-instance 'remove-token :fact fact))
  
  
negative.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
  