anchor.diff:    ())
   
   (defmethod compile-ast ((ast memset-ast) value-context successor)
  -  (unless (null value-context)
  -    (error "invalid value context"))
  -  (let ((temp1 (new-temporary))
  -	(temp2 (new-temporary)))
  -    (let ((instruction (make-instance 'memset-instruction
  -				      :inputs (list temp1 temp2)
  -				      :outputs '()
  -				      :next successor)))
  -      (compile-ast (car (arguments ast))
  -		   (list temp1)
  -		   (compile-ast (cadr (arguments ast))
  -				(list temp2)
  -				instruction)))))
  +  (multiple-value-bind (new-value-context new-successor)
  +      (adapt-value-context value-context 0 0 successor)
  +    (let* ((temps (make-temps (arguments ast)))
  +	   (instruction (make-instance 'memset-instruction
  +				       :inputs temps
  +				       :outputs new-value-context
  +				       :next new-successor)))
  +      (compile-arguments (arguments ast) temps instruction))))
   
   ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
   ;;;
  
positive.code:   ())
  
  (defmethod compile-ast ((ast u+-ast) value-context successor)
    (unless (and (list value-context)
  	       (member (length value-context) '(1 2)))
      (error "invalid value context"))
    (let ((temp1 (new-temporary))
  	(temp2 (new-temporary)))
      (let ((instruction (make-instance 'u+-instruction
  				      :inputs (list temp1 temp2)
  				      :outputs (car value-context)
  				      :next successor)))
        (compile-ast (car (arguments ast))
  		   (list temp1)
  		   (compile-ast (cadr (arguments ast))
  				(list temp2)
  				instruction)))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  
negative.code: (defclass s+-instruction (single-successor-instruction in-out-mixin)
    ())
  
  (defmethod compile-ast ((ast s+-ast) value-context successor)
    (multiple-value-bind (new-successor new-value-context)
        (adapt-value-context value-context 1 2 successor)
      (let* ((temps (make-temps (arguments ast)))
  	   (instruction (make-instance 's+-instruction
  				       :inputs temps
  				       :outputs new-value-context
  				       :next new-successor)))
        (compile-arguments (arguments ast) temps instruction))))
  
  ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  ;;;
  ;;; Word operation S-.
  