anchor.diff:      ;; make items optional if they invoke an optional rule 
       ;;
       (maphash #'(lambda (rule-name rule)
  +		 (declare (ignore rule-name))
   		 (let* ((items (parser-rule-items rule))
   			(n (length items)))
   		   (dotimes (i n t)
  
positive.code:     ;;
      ;; make rules optional if all their items are optional
      ;;
      (maphash #'(lambda (name rule)
  		 (let* ((items (parser-rule-items rule))
  			(n (length items))
  			(all-optional? 
  
negative.code: 			       (when-debugging
  				(when *verbose?*
  				  (comment "In rule ~30S, item ~D (~S) is now optional with semantics ~S."
  					   rule i item-rule-name
  					   (parser-rule-item-default-semantics item))))))))))))
  	     ht-name-to-rule)
      ;; changed? will be NIL once we reach a fixpoint (probably about 2 rounds)
  