anchor.diff:        context
       (ecase (length successors)
         (1
  -       (let* ((result (car results))
  -	      (successor (nil-fill (cdr results) (car successors)))
  -	      (true (cleavir-ir:make-constant-input T))
  -	      (false (cleavir-ir:make-constant-input NIL))
  -	      (true-branch (make-instance 'cleavir-ir:assignment-instruction
  -			     :inputs (list true)
  -			     :outputs (list result)
  -			     :successors (list successor)))
  -	      (false-branch (make-instance 'cleavir-ir:assignment-instruction
  -			      :inputs (list false)
  -			      :outputs (list result)
  -			      :successors (list successor))))
  -	 (call-next-method ast
  -			   (context '()
  -				    (list true-branch false-branch)
  -				    invocation))))
  +       ;; FIXME: Use a specific condition
  +       (error "Boolean AST in a context requiring a value"))
         (2
          (call-next-method)))))
   
  
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)
  