anchor.diff:  (defparameter +atom-marker+ '+atom-marker+)
   
   (defun find-walker-handler (form)
  -  "Simple function which tells us what handler should deal
  -  with FORM. Signals an error if we don't have a handler for
  -  FORM."
  +  "Simple function which tells us what handler should deal with FORM. Signals an error if we don't have a handler for FORM."
     (if (atom form)
         (gethash '+atom-marker+ *walker-handlers*)
         (aif (gethash (car form) *walker-handlers*)
  
positive.code:        :return (values data t)
       :finally
         (if error-p
             (error "Sorry, No value for ~S of type ~S in environment ~S found."
                    name type environment)
             (values default-value nil))))
  
  #+(or)
  (defun (setf %lookup) (value environment type name &key (error-p nil))
    (loop
       for env-piece in environment
       when (and (eql (first env-piece)  type)
                 (eql (second env-piece) name))
         do (setf (cddr env-piece) value) and
         return value
       finally
         (when error-p
           (error "Sorry, No value for ~S of type ~S in environment ~S found."
                  name type environment))))
  
  ;;;
  
negative.code:               (error "Sorry, no walker for the special operator ~S defined." (car form)))
               (t (gethash 'application *walker-handlers*))))))
  
  (defmacro defwalker-handler (name (form parent lexenv)
                               &body body)
    `(progn
       (setf (gethash ',name *walker-handlers*)
             (lambda (,form ,parent ,lexenv)
               (declare (ignorable ,parent ,lexenv))
               ,@body))
       ',name))
  
  