anchor.diff:  					   (list successor)
   					   invocation))))))
         (2
  -       ;; We have a context where a test of a Boolean is required.  We
  -       ;; create a new context where the result is compared to NIL
  -       ;; using EQ-INSTRUCTION, and compile the AST in that context
  -       ;; instead.
  -       (let* ((false (cleavir-ir:make-constant-input NIL))
  -	      (temp (cleavir-ir:new-temporary))
  -	      (successor (make-instance 'cleavir-ir:eq-instruction
  -			   :inputs (list temp false)
  -			   :outputs '()
  -			   :successors (reverse successors))))
  -	 (call-next-method ast
  -			   (context (list temp)
  -				    (list successor)
  -				    (invocation context))))))))
  +       ;; We have a context where a test of a Boolean is required.
  +       ;; FIXME: Use a specific condition.
  +       (error "AST generating value(s) found where a Boolean AST is required")))))
   
   (defun check-context-for-one-value-ast (context)
     (assert (and (= (length (results context)) 1)
  
positive.code: ;;; This :AROUND method serves as an adapter for the compilation of
  ;;; ASTs that generate a single value.  If such an AST is compiled in
  ;;; a unfit context (i.e, a context other than one that has a single
  ;;; successor and a single required value), this method creates a
  ;;; perfect context for compiling that AST together with instructions
  ;;; for satisfying the unfit context.
  (defmethod compile-ast :around ((ast cleavir-ast:one-value-ast-mixin) context)
    (with-accessors ((results results)
  		   (successors successors)
  
negative.code: 
  ;;; When an AST that is meant for a test (as indicated by it being an
  ;;; instance of BOOLEAN-AST-MIXIN) is compiled in a context where one
  ;;; or more values are needed, we signal an error.
  (defmethod compile-ast :around ((ast cleavir-ast:boolean-ast-mixin) context)
    (with-accessors ((results results)
  		   (successors successors)
  