anchor.diff:        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
  
positive.code:   (make-instance 'local-function-info
      :name (name defining-info)
      :identity (identity 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 (defining-info global-function-info))
    (make-instance 'global-function-info
      :name (name defining-info)
      :type (apply #'conjoin-types
  		 (function-type environment defining-info))
      :ignore
      (let ((entry (function-ignore environment defining-info)))
        (ignore (or entry defining-info)))
  