anchor.diff:    (or (member name names) (get name 'parser-function)))
   
   (defun compile-progn (body txt st pos names)
  +  "Compile the forms in an PROGN so that the PROGN matches if each of
  +the elements matches in sequence."
     (unless (null body)
       (with-gensyms (s p)
         (compile-wrapped-form
  
positive.code:     (t form)))
  
  (defun parser-function-invocation-p (form names)
    (and (consp form) (symbolp (car form)) (grammar-p (car form) names)))
  
  (defun binding-form-p (form)
    (and (consp form) (eql (car form) '->)))
  
  
  (defmacro defparserfun (name (&rest args) &body body)
    `(progn
  
negative.code:          ,failure)))
  
  (defun compile-or (body txt st pos names)
    "Compile the forms in an OR so that the OR matches if any of the
  elements matches, returning the result from the first match."
    (unless (null body)
      (with-gensyms (s p)
        (compile-wrapped-form
  