anchor.diff:    (if (eq symbol (name environment))
         (make-instance 'special-variable-info
   	:name symbol
  -	:identity (identity environment))
  +	:global-p nil)
         (defining-variable-info (next environment) symbol)))
   
   (defmethod defining-variable-info ((environment symbol-macro) symbol)
  
positive.code:   (make-instance 'special-variable-info
      :name (name defining-info)
      :type (cons 'and (variable-type environment defining-info))
      :ignore
      (let ((entry (variable-ignore environment defining-info)))
        (if (null entry) nil (ignore entry)))))
  
negative.code: 
  (defmethod function-info ((environment entry) symbol)
    (let ((defining-info (defining-function-info environment symbol)))
      (if (null defining-info)
  	;; If DEFINING-INFO is NIL, this means that FUNCTION-INFO
  	;; returned NIL when called with the global environment, which
  	;; means that there was no information for this symbol.  We
  	;; must then also respect the protocol and return nil to our
  	;; caller.
  	nil
  	(make-info environment defining-info))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  