anchor.diff:  ;;; ======================================================================
   ;;;; Interface functions
   
  -(defun type-analyze (elm)
  -  "Perform type analysis on ELM and return the corresponding type-map."
  -  (let ((*type-graph* (make-hash-table :test 'equal)))
  -    (internal-analyze elm)
  -
  -    (loop with node-history = (make-node-history)
  -          for node being each hash-value of *type-graph*
  -          do (collapse-type-graph node (make-node-history) nil nil nil nil nil))
  +;(defun type-analyze (elm)
  +;  "Perform type analysis on ELM and return the corresponding type-map."
  +;  (let ((*type-graph* (make-hash-table :test 'equal)))
  +;    (internal-analyze elm)
  +
  +;    (loop with node-history = (make-node-history)
  +;          for node being each hash-value of *type-graph*
  +;          do (collapse-type-graph node (make-node-history) nil nil nil nil nil))
       
  -    *type-graph*))
  +;    *type-graph*))
   
   (defun find-node (name type-map)
     "Find the value node named NAME in TYPE-MAP."
  
positive.code:                    (format s " [style=dashed, label=\"~A\"]" label))
                   (format s ";~%"))
  
                 (print-collection-edges (from-node to-collection-accessor)
                   (loop for cell-or-node in (funcall to-collection-accessor from-node)
                         for to-node = (if (consp cell-or-node)
                                         (cdr cell-or-node)
                                         cell-or-node)
                         for label = (if (consp cell-or-node)
                                       (car cell-or-node)
                                       nil)
                         do
                         (print-edge from-node to-node label)
                         (queue-node to-node)))
  
negative.code:                      (type-node-name node)))
              :test 'equal))
  
  (defun add-assignment-edge (left-node right-node &optional queue)
    "Add an assignment edge from LEFT-NODE to RIGHT-NODE if no such edge already exists.
     If QUEUE is non-NIL, queues LEFT-NODE for further processing."
    (assert (value-node-p left-node))
    (pushnew right-node (value-node-assignments left-node))
    (when queue
      (enqueue-node queue left-node)))
  
  (defun get-type-node (name)
    "Return the type node named NAME from *TYPE-GRAPH*, creating it
  