anchor.diff:    (make-instance 'symbol-macro-info
       :name (name defining-info)
       :expansion (expansion defining-info)
  -    :type (cons 'and (variable-type environment defining-info))))
  +    :type (apply #'conjoin-types
  +		 (variable-type environment defining-info))))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  
positive.code:     (environment (defining-info global-function-info))
    (make-instance 'global-function-info
      :name (name defining-info)
      :type (cons 'and (function-type environment defining-info))
      :ignore
      (let ((entry (function-ignore environment defining-info)))
        (ignore (or entry defining-info)))
  
negative.code:       environment
        (variable-dynamic-extent (next environment) defining-info)))
  
  ;;; This utility function is used so that the types returned by
  ;;; MAKE-INFO are a bit cleaner and easier to work with.
  (defun conjoin-types (&rest types)
    ;; (and) = T so the degenerate case is no problem.
    (cons 'and (remove t types)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Methods on MAKE-INFO specialized to INFO classes returned by
  