anchor.diff:  ;;; Order is FROM TO BY.
   (define-parser arithmetic-up-1-parser
     (consecutive (lambda (var type-spec from to by)
  -		 (let ((to-var (gensym))
  -		       (by-var (gensym)))
  -		   (multiple-value-bind (initial-value type)
  -		       (arithmetic-value-and-type type-spec)
  -		     (make-instance 'for-as-arithmetic
  -		       :bindings `((,var ,initial-value)
  -				   (,to-var ,initial-value)
  -				   (,by-var ,initial-value))
  -		       :declarations `((cl:type ,type ,var))
  -		       :prologue `(progn (setq ,var ,from)
  -					 (setq ,to-var ,(cdr to))
  -					 (setq ,by-var ,by))
  -		       :termination
  -		       `(when (,(if (eq (car to) '/=) '>= '>) ,var ,to-var)
  -			  (go end))
  -		       :step `((incf ,var ,by-var))))))
  +		 (make-instance 'for-as-arithmetic-up
  +		   :var-spec var
  +		   :type-spec type-spec
  +		   :start-form from
  +		   :end-form (second to)
  +		   :by-form by
  +		   :termination-test (first to)))
   	       'simple-var-parser
   	       'optional-type-spec-parser
   	       (alternative 'from-parser 'upfrom-parser)
  
positive.code: ;;; BY- DOWNFROM - TO/DOWNTO/ABOVE
  (define-parser arithmetic-down-11-parser
    (consecutive (lambda (var type-spec by from to)
  		 (let ((to-var (gensym))
  		       (by-var (gensym)))
  		   (multiple-value-bind (initial-value type)
  		       (arithmetic-value-and-type type-spec)
  		     (make-instance 'for-as-arithmetic
  		       :bindings `((,by-var ,initial-value)
  				   (,var ,initial-value)
  				   (,to-var (cdr to)))
  		       :declarations `((cl:type ,type ,var))
  		       :prologue `(progn (setq ,by-var ,by)
  					 (setq ,var ,from)
  					 (,to-var (cdr to)))
  		       :termination
  		       `(when (,(if (eq (car to) '/=) '<= '<) ,var ,to-var)
  			  (go end))
  		       :step `((decf ,var ,by-var))))))
  	       'simple-var-parser
  	       'optional-type-spec-parser
  	       'by-parser
  
negative.code: ;;; TO/DOWNTO/ABOVE - DOWNFROM - BY
  (define-parser arithmetic-down-9-parser
    (consecutive (lambda (var type-spec to from by)
  		 (make-instance 'for-as-arithmetic-down
  		   :var-spec var
  		   :type-spec type-spec
  		   :start-form from
  		   :end-form (second to)
  		   :by-form by
  		   :termination-test (first to)))
  	       'simple-var-parser
  	       'optional-type-spec-parser
  	       (alternative 'to-parser 'downto-parser 'above-parser)
  