anchor.diff:               self (make-slot (first desc) (second desc) (third desc))))
           slot-list))
   
  +(defmacro generate-test (var value negated)
  +  `(cond (,negated
  +          (if (quotable ,value)
  +              `(not (eq ,var ',value))
  +            `(not (equal ,var ,value))))
  +         (t
  +          (if (quotable ,value)
  +              `(eq ,var ',value)
  +            `(equal ,var ,value)))))
  +       
   (defun canonicalize-slot (pattern slot bindings)
     (declare (type (pattern pattern) (slot slot)
                    (binding-table bindings)))
  
positive.code: ;;; File: pattern.lisp
  ;;; Description:
  
  ;;; $Id: pattern.lisp,v 1.20 2001/01/09 21:03:51 youngde Exp $
  
  (in-package :lisa)
  
  
negative.code:                              (get-name slot)))))
             (rewrite-slot (var value negated)
               (setf (get-value slot) var)
               (setf (get-constraint slot)
                 (generate-test var value negated))
               (new-slot-binding var)))
      (with-accessors ((slot-value get-value)
                       (slot-constraint get-constraint)) slot
  