anchor.diff:    "Compile a call to a parser function. Arguments are evaluated slightly
   differently than forms appearing as grammar expressions: grammar expressions are
   turned into a thunk so the parser function can invoke them as needed while IF
  -and TRACE forms have their parts compiled. All other values are passed through
  -as plain Lisp values."
  +and TRACE forms have their parts compiled with this function. All other values
  +are passed through as plain Lisp values."
     (destructuring-bind (name &rest args) exp
       (labels ((compile-arg (form)
                  (cond
  
positive.code:   "Slight optimization for the case where we just have a parser function being
  called with the input as its only argument."
    (if (and (consp x) (grammar-p (car x) names) (= (length x) 2))
        `#',(car x)
        `(lambda (,input) ,x)))
  
  (defun compile-string (str input) `(matching-string ,str ,(length str) ,input))
  
negative.code:   (with-gensyms (ok result)
      (labels ((inner (exprs)
                 (if exprs
                     (multiple-value-bind (form var) (form-and-variable (first exprs))
                       `(multiple-value-bind (,ok ,(or var result) ,input)
                            ,(compile-form form input names state)
                          ,@(when (not var) `((declare (ignorable ,result))))
  