anchor.diff:                  ,good
                   (return-from ,or (values ,ok ,result ,next-input)))))))))
   
  -(defun new-compile-form (form input names state)
  +(defun compile-form (form input names state)
     "Compile a single parser form."
     (cond
  -    ((parser-function-invocation-p form names) (compile-parser-call form names input state))
  -
  -    ((form-p 'and form) (new-compile-and (rest form) input names state))
  -
  -    ((form-p 'or form) (new-compile-or (rest form) input names state))
  +    ((parser-call-p form names) (compile-parser-call form names input state))
  +
  +    ((form-p 'and form) (compile-and (rest form) input names state))
  +
  +    ((form-p 'or form) (compile-or (rest form) input names state))
   
       ((form-p 'if form) (compile-if (cdr form) input names state))
   
  
positive.code:     ((characterp form) (compile-character form input))
  
      (t `(good ,form ,input))))
  
  ;;; Common compiler functions ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  
  (defun compile-parser-argument (exp names state)
    "Used to compile expressions in function calls."
  
negative.code:   `(funcall ,parser ,input))
  
  (defun compile-if (body input names state)
    (flet ((comp (x) (compile-form x input names state)))
      (destructuring-bind (test then else) body
        `(if ,test ,(comp then) ,(comp else)))))
  
  (defun compile-tracer (form input names state)
    (compile-form `(tracer ,(cadr form) ',(cadr form)) input names state))
  
  (defun compile-parser-call (exp names input state)
    (destructuring-bind (name &rest args) (rewrite-form exp names)
  