anchor.diff:    (loop with succ = successor
   	for arg in (reverse arguments)
   	for temp in (reverse temps)
  -	do (unless (typep temp 'sicl-mir:immediate-input)
  +	do (unless (or (typep temp 'sicl-mir:immediate-input)
  +		       (typep temp 'sicl-mir:external-input))
   	     (setf succ (compile-ast arg (context (list temp) (list succ)))))
   	finally (return succ)))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  -;;; Compile a WORD-AST.
  -;;;
  -
  -(defmethod compile-ast ((ast sicl-ast:word-ast) context)
  +;;; Compile a IMMEDATE-AST.
  +;;;
  +
  +(defmethod compile-ast ((ast sicl-ast:immediate-ast) context)
     (with-accessors ((results results)
   		   (successors successors))
         context
  
positive.code: (defun make-temp (argument)
    (cond ((typep argument 'sicl-env:lexical-location-info)
  	 argument)
  	((typep argument 'sicl-ast:word-ast)
  	 (sicl-mir:make-immediate-input (sicl-ast:value argument)))
  	(t
  	 (new-temporary))))
  
  
negative.code: 		   (sicl-mir:make-nop-instruction nil))))
    (let ((next (if (null (results context))
  		  (car (successors context))
  		  (sicl-mir:make-variable-assignment-instruction
  		   (sicl-mir:make-external-input 'nil)
  		   (car (results context))
  		   (car (successors context))))))
      (loop for item in (reverse (sicl-ast:items ast))
  	  do (setf next
  		   (if (typep item 'sicl-ast:tag-ast)
  