anchor.diff:  ;;; symbol, created by LISA, used to identify fact slots within rules; the
   ;;; latter refers to the actual, package-qualified slot name.
   
  -;;; $Id: meta.lisp,v 1.2 2002/10/01 18:09:24 youngde Exp $
  +;;; $Id: meta.lisp,v 1.3 2002/10/15 18:31:52 youngde Exp $
   
   (in-package "LISA")
   
  
positive.code:         symbolic-name))
      meta-fact))
  
  (defun register-external-class (symbolic-name class)
    (setf (gethash (class-name class) *class-map*) symbolic-name))
  
  (defun find-symbolic-name (instance)
    (let ((name (gethash (class-name (class-of instance)) *class-map*)))
      (cl:assert (not (null name)) nil
        "The class of this instance is not known to LISA: ~S." instance)
      name))
  
  (defmacro import-class (class-name use-inheritance-p)
    "Imports an external class into LISA, making it available for
  
negative.code:       "No effective slot for symbol ~S." slot-name)
      effective-slot))
  
  #+ignore
  (defvar *class-map* (make-hash-table)
    "A hash table mapping a symbolic name to its associated effective class
    name.")
  
  #+ignore
  (defvar *meta-fact-map* (make-hash-table))
  
  #+ignore
  (defun register-meta-fact (symbolic-name meta-fact)
    "Binds SYMBOLIC-NAME to a META-FACT instance."
    (setf (gethash symbolic-name *meta-fact-map*) meta-fact))
  
  #+ignore
  (defun has-meta-factp (symbolic-name)
    "See if SYMBOLIC-NAME has an associated META-FACT instance."
    (gethash symbolic-name *meta-fact-map*))
    
  #+ignore
  (defun find-meta-fact (symbolic-name &optional (errorp t))
    "Locates the META-FACT instance associated with SYMBOLIC-NAME. If ERRORP is
    non-nil, signals an error if no binding is found."
  