anchor.diff:  			     temp result next)))
   	     ;; Before assigning to the results, check the
   	     ;; types of the values.
  -	     (loop for type-ast in type-asts
  +	     (loop for type-specifier in type-specifiers
   		   for temp in temps
  -		   do (setf next (make-type-check type-ast temp next)))
  +		   do (setf next (make-type-check type-specifier temp next)))
   	     next)))
   	(2
   	 (if (null results)
  
positive.code: ;;;
  ;;; Compile a THE-AST.
  
  (defun make-type-check (type-ast var successor)
    (check-type type-ast cleavir-ast:constant-ast)
    (let* ((type-input (cleavir-mir:make-constant-input (cleavir-ast:value type-ast)))
  	 (temp (make-temp nil))
  	 (error-branch
  	   (make-instance 'cleavir-mir:fdefinition-instruction
  
negative.code:   (with-accessors ((results results)
  		   (successors successors))
        context
      (let ((form-ast (cleavir-ast:form-ast ast))
  	  (type-specifiers (cleavir-ast:type-specifiers ast)))
        (ecase (length successors)
  	(0
  	 ;; This case is a bit hard to handle, because we don't know a
  