anchor.diff:    (with-accessors ((results results)
   		   (successors successors))
         context
  -    (let* ((temp (make-temp (car (sicl-ast:argument-asts ast))))
  +    (let* ((temp (make-temp (sicl-ast:form-ast ast)))
   	   (instruction
   	     (ecase (length successors)
  +	       (0 (let ((temp2 (sicl-mir:new-temporary)))
  +		    (sicl-mir:make-load-cdr-instruction
  +		     temp temp2
  +		     (sicl-mir:make-return-instruction
  +		      (list temp2)))))
   	       (1 (let ((next (car successors)))
   		    (cond ((null results)
   			   (warn "LOAD-CDR operation in a context of no results.")
   			   next)
   			  ((eq results t)
  -			   (let ((temp2 (sicl-mir:new-temporary)))
  -			     (setf next 
  -				   (sicl-mir:make-return-instruction
  -				    (list temp2)))
  -			     (sicl-mir:make-load-cdr-instruction
  -			      temp temp2 next)))
  +			   (error "this should not happen"))
   			  (t
   			   (setf next (nil-fill (cdr results) next))
   			   (sicl-mir:make-load-cdr-instruction
  
positive.code:     (unless (and (= (length successors) 1)
  		 (zerop (length results)))
        (error "Illegal context for store-contents."))
      (let* ((temps (make-temps (sicl-ast:argument-asts ast)))
  	   (instruction
  	     (sicl-mir:make-store-contents-instruction
  	      temps (car successors))))
        (compile-arguments (sicl-ast:argument-asts ast) temps instruction))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code: 			       temps location next))
  			(nil-fill (cdr results) next)))))))
        (compile-arguments
         argument-asts temps instruction))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  