anchor.diff:          (values (1+ start) (string c))))))
   
   (grammar-rule concatenate-symbol
  -  (grammar-string ","))
  +  (grammar-func
  +   (grammar-string ",")
  +   (lambda (x) (declare (ignore x))
  +           :and)))
   
   (grammar-rule defining-symbol
  -  (grammar-string "="))
  +  (grammar-func
  +   (grammar-string "=")
  +   (lambda (x) (declare (ignore x))
  +           :=)))
   
   (grammar-rule definition-separator-symbol
  -  (grammar-or (grammar-string "|")
  -              (grammar-string "/")
  -              (grammar-string "!")))
  +  (grammar-func
  +   (grammar-or (grammar-string "|")
  +               (grammar-string "/")
  +               (grammar-string "!"))
  +   (lambda (x) (declare (ignore x))
  +           :or)))
   
   (grammar-rule end-comment-symbol
     (grammar-string "*)"))
  
positive.code: 
  (grammar-rule optional-sequence
    "see 4.11"
    (grammar-and start-option-symbol
                 definitions-list
                 end-option-symbol))
  
  (grammar-rule repeated-sequence
    "see 4.12"
    (grammar-and start-repeat-symbol
                 definitions-list
                 end-repeat-symbol))
  
  (grammar-rule grouped-sequence
    "see 4.13"
  
negative.code:                  first-terminal-character
                   (grammar-* first-terminal-character)
                   first-quote-symbol)
      (lambda (x) (declare (ignore x))
              (subseq string (1+ start) (1- end))))
     (grammar-func
      (grammar-and second-quote-symbol
                   second-terminal-character
                   (grammar-* second-terminal-character)
                   second-quote-symbol)
      (lambda (x) (declare (ignore x))
              (subseq string (1+ start) (1- end))))))
  
  (grammar-rule gap-free-symbol
    "see 6.3"
  