anchor.diff:     (%invocation :initarg :invocation :reader invocation)))
   
   (defun context (results successors invocation)
  -  (unless (and (listp results)
  -	       (every (lambda (result)
  -			(typep result 'cleavir-ir:lexical-location))
  -		      results))
  +  (unless (or (and (listp results)
  +		   (every (lambda (result)
  +			    (typep result 'cleavir-ir:lexical-location))
  +			  results))
  +	      (eq results t))
       (error "illegal results: ~s" results))
     (unless (and (listp successors)
   	       (every (lambda (successor)
  
positive.code: ;;; Compilation context.
  ;;;
  ;;; Each AST is compiled in a particular COMPILATION CONTEXT or
  ;;; CONTEXT for short.  A context object has two components: 
  ;;;
  ;;; 1. SUCCESSORS, which is a proper list containing zero, one or two
  ;;; elements.  These elements are instructions resulting from the
  
negative.code: ;;;      are required.  The VALUES-FORM-AST of MULTIPLE-VALUE-BIND-AST
  ;;;      is compiled in a context like this.
  ;;;
  ;;;      If RESULTS is T, then all values are required.  An example of
  ;;;      the use of this context is for compiling the FIRST-FORM of a
  ;;;      MULTIPLE-VALUE-PROG1 special form.
  ;;;
  ;;;   SUCCESSOR has two elements.  Then RESULTS is the empty list,
  ;;;   meaning that no values are required.  The TEST-AST of an IF-AST
  ;;;   is compiled in a context like this.
  ;;;
  ;;;   SUCCESSORS has more than two elements.  This possibility is
  ;;;   currently not used.  It is mean to be used for forms like CASE,
  ;;;   TYPECASE, etc.  Again, the RESULTS would be the empty list.
  
  (defclass context ()
    ((%results :initarg :results :reader results)
  