anchor.diff:  ;;;
   ;;; This is the root class of all different kinds of data. 
   
  -(defclass datum () ())
  +(defclass datum ()
  +  ((%defining-instructions :initform '() :accessor defining-instructions)
  +   (%using-instructions :initform '() :accessor using-instructions)))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  
positive.code: 
  (defmethod (setf outputs) :before (new-outputs instruction)
    (assert (listp new-outputs))
    (assert (every (lambda (output) (typep output 'datum)) new-outputs)))
  
  (defclass instruction ()
    ((%predecessors :initform '() :initarg :predecessors :accessor predecessors)
  
negative.code:   (make-instance 'register-location
      :name name))
  
  (defmethod print-object ((object register-location) stream)
    (print-unreadable-object (object stream :type t)
      (format stream "~a" (name object))))
  
  (defmethod draw-datum ((datum register-location) stream)
    (format stream "   ~a [fillcolor = red, label = \"~a\"]~%"
  	  (gethash datum *datum-table*)
  