anchor.diff:  		     :successors successors
   		     :false-required-p false-required-p)))
   
  +(defmethod print-object ((obj context) stream)
  +  (print-unreadable-object (obj stream)
  +    (format stream " results: ~s" (results obj))
  +    (format stream " successors: ~s" (successors obj))
  +    (format stream " false-required-p: ~s" (false-required-p obj))))
  +
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
   ;;; Compile an abstract syntax tree in a compilation context.
  
positive.code:   (with-accessors ((results results)
  		   (successors successors))
        context
      (ecase (length successors)
        (1 (cond ((eq results t)
  		(sicl-mir:make-return-instruction (list ast)))
  	       ((null results)
  		(warn "variable compiled in a context with no values")
  		(car successors))
  	       ((eq ast (car results))
  		(nil-fill (cdr results) (car successors)))
  	       (t
  		(sicl-mir:make-assignment-instruction
  		 ast
  		 (car results) 
  		 (nil-fill (cdr results) (car successors))))))
        (2 (if (or (null results) (eq ast (car results)))
  	     (sicl-mir:make-test-instruction ast successors)
  	     (sicl-mir:make-assignment-instruction
  	      ast
  	      (car results)
  	      (sicl-mir:make-test-instruction ast successors)))))))
  
  (defun compile-toplevel (ast)
    (let ((*block-info* (make-hash-table :test #'eq))
  
negative.code: 
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Compile a CALL-AST.
  ;;;
  ;;; The first instruction generated is a PUT-ARGUMENTS-INSTRUCTION.
  ;;; This instruction supplies the arguments to the call.  Then the
  