anchor.diff:  (defmacro make-equality-predicate (var atom)
     `(function
       (lambda ()
  -      (equal (symbol-value ,var) ,@(if (symbolp atom) `(',atom) `(,atom))))))
  -
  -(defmacro make-generic-predicate (&rest body)
  -  `(function (lambda () ,@body)))
  +      (equal (symbol-value ,var) ,atom))))
  +
  +(defun make-generic-predicate (forms)
  +  (eval `(function (lambda () (progn ,@forms)))))
   
   (defun find-or-set-slot-binding (var slot-name location)
     (multiple-value-bind (binding existsp)
  
positive.code: ;;; modify) is performed elsewhere as these constructs undergo additional
  ;;; transformations.
  ;;;
  ;;; $Id: parser.lisp,v 1.29 2002/09/26 15:44:58 youngde Exp $
  
  (in-package "LISA")
  
  
negative.code:                        (parse-constraint field constraint))
                       (setf existing-bindings
                         (append existing-bindings constraint-bindings)))
                     (make-pattern-slot :name name 
                                        :value field
                                        :slot-binding slot-binding
  