anchor.diff:  ;;; Description: This class manages the mechanics of executing arbitrary Lisp
   ;;; code from conditional elements and rule RHSs.
   
  -;;; $Id: funcall.lisp,v 1.16 2001/01/26 20:42:02 youngde Exp $
  +;;; $Id: funcall.lisp,v 1.17 2001/01/27 20:41:21 youngde Exp $
   
   (in-package :lisa)
   
  
positive.code:          (mapcar #'(lambda (binding)
                       (make-lexical-binding binding context))
                   (get-bindings func))))
  
  (defmethod equals ((self function-call) (obj function-call))
    (eq self obj))
  
negative.code:                   (get-slot-name binding)))
  
  #+ignore
  (defmacro make-lexical-binding (binding context)
    `(etypecase ,binding
       (local-slot-binding
        (get-slot-value (get-fact ,context) (get-slot-name ,binding)))
       (global-slot-binding
        (let ((fact (find-fact (get-token ,context) (get-location ,binding))))
          (cl:assert (not (null fact)) ()
            "No fact for location ~D." (get-location ,binding))
          (get-slot-value fact (get-slot-name ,binding))))
       (pattern-binding
        (let ((fact (find-fact (get-token ,context) (get-location ,binding))))
          (cl:assert (not (null fact)) ()
            "No fact for location ~D." (get-location ,binding))
          (values fact)))))
  
  #+ignore
  (defun evaluate (func context)
    (declare (type function-call func)
             (type function-call-context context))
  