anchor.diff:  	(loop until (null remaining)
   	      do (push (one-block (pop remaining)) basic-blocks))))))
   
  -(defun ensure-basic-block-for-procedure (procedure program)
  -  (when (null (basic-blocks procedure))
  -    (compute-basic-blocks-for-procedure procedure program)))
  -
   (defun compute-basic-blocks (program)
  -  (ensure-instruction-ownership program)
     (loop for procedure in (procedures program)
   	do (compute-basic-blocks-for-procedure procedure program)))
     
   (defun ensure-basic-blocks (program)
  -  (ensure-instruction-ownership program)
  -  (loop for procedure in (procedures program)
  -	do (ensure-basic-block-for-procedure procedure program)))
  +  (when (>= (ensure-instruction-ownership program)
  +	    (basic-blocks-timestamp program))
  +    (compute-basic-blocks program)
  +    (setf (basic-blocks-timestamp program)
  +	  (incf (current-timestamp program))))
  +  (basic-blocks-timestamp program))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  
positive.code: 	       (position (sicl-mir:value external) externals
  			 :test #'equal)))))))
      
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code: ;;; also referred to by some procedure C inside which both A and B are
  ;;; nested.
  ;;;
  ;;; A lexical location L is said to be PRESENT in a procedure P if and
  ;;; only if some instruction belonging to P refers to L.  A location L
  ;;; is said to BELONG to a procedure P if L is present in P, and L is
  ;;; not present in a procedure inside which P is nested.  Because of
  ;;; the restriction in the previous paragraph, every location belongs
  ;;; to some unique procedure.  The procedure P to which a location
  ;;; belongs is called the OWNER of the location.
  ;;;
  ;;; The LEXICAL DEPTH of a procedure is a quantity that is less than
  ;;; or equal to the NESTING depth of that procedure.  We define it
  