anchor.diff:  (defpackage #:sicl-compiler-phase-2
     (:use #:common-lisp #:sicl-compiler-phase-1)
     (:export
  +   #:compile-ast
      ))
   
   (in-package #:sicl-compiler-phase-2)
  
positive.code:   ((%fun :initarg :fun :accessor fun)
     (%arguments :initarg :arguments :accessor arguments)))
  
  (defclass out-instruction (single-successor-instruction)
    ((%value-number :initarg :value-number :accessor value-number)
     (%variable :initarg :variable :accessor variable)))
  
  (defclass value-count-instruction (single-successor-instruction)
    ((%value-count :initarg :value-count :accessor value-count)))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Compile an abstract syntax tree.
  
  (defun new-temporary ()
    (make-instance 'variable-ast
      :binding (make-instance 'lexical-variable-entry
  			    :name 'temp)
      :type t))
  
  (defun nil-fill (value-context successor)
    (let ((next successor))
  
negative.code: 		      collect (new-temporary))))
        (setf next
  	    (make-instance 'funcall-instruction
  	      :fun (function-location ast)
  	      :arguments temps
  	      :next next))
        (loop for temp in (reverse temps)
  