anchor.diff:  		  (precedence     nil))
   	      (loop while (consp separator-pattern) do
   		(cond ((eq (first separator-pattern) :OPTIONAL)
  -		       (warn "In repeat rule ~S, separator may not be :optionalt: ~S"
  +		       (warn "In repeat rule ~S, separator may not be :optional: ~S"
   			     name 
   			     pattern)
   		       (setq separator-pattern (second separator-pattern)))
  
positive.code: 		(precedence     nil))
  	    (loop while (consp element-pattern) do
  	      (cond ((eq (first element-pattern) :OPTIONAL)
  		     (warn "In repeat rule ~S, element may not be :optionalt: ~S"
  			   name 
  			   pattern)
  		     (setq element-pattern (second element-pattern)))
  
negative.code: 		(let ((newrule (make-parser-atomic-rule :name name)))
  		  (install-parser-rule parser newrule)
  		  name))
  	       ((and (consp pattern) (or (numberp (first pattern))
  					 (eq (first pattern) :optional)))
  		(build-parser-rule parser name `(:TUPLE ,pattern)))
  	       (t
  		(build-parser-rule parser name pattern)))))
      (when (null rule-name)
        (warn "Ignoring rule ~S, because pattern begins with :optional: ~S"
  	    name 
  	    pattern)
        (return-from add-parser-main-rule nil))
      (let ((rule (maybe-find-parser-rule parser rule-name)))
        (unless (null rule)
  	(setf (parser-rule-main-rule? rule) t)
  