anchor.diff:  
   (defmethod compile-ast ((ast go-ast) value-context successor)
     (declare (ignore value-context successor))
  -  (gethash (binding ast) *go-info*))
  +  (gethash (tag-ast ast) *go-info*))
   
   (defmethod compile-ast ((ast function-call-ast) value-context successor)
     (let ((next successor))
  
positive.code: 	(compile-ast (test ast) (list test-temp) test)))))
  
  (defmethod compile-ast ((ast progn-ast) value-context successor)
    (let ((next (compile-ast (car (last (forms ast))) value-context successor)))
      (loop for sub-ast in (cdr (reverse (forms ast)))
  	  do (setf next (compile-ast sub-ast '() next)))
      next))
  
  (defparameter *block-info* nil)
  
  (defmethod compile-ast ((ast block-ast) value-context successor)
    (setf (gethash (binding ast) *block-info*)
  	(list value-context successor))
    (compile-ast (body ast) value-context successor))
  
  (defmethod compile-ast ((ast return-from-ast) value-context successor)
    (declare (ignore value-context successor))
    (destructuring-bind (value-context successor)
        (gethash (binding ast) *block-info*)
      (compile-ast (form ast) value-context successor)))
  
  (defparameter *go-info* nil)
  
  
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)
  