anchor.diff:  
   (defmethod cpf-list ((car (eql 'or>)) form context env)
     "return the rule that has the longest match"
  +  (declare (ignore car))
     (unless (cdr form) ; style tweak, doesn't change runtime, mimics (cl:or)
       (return-from cpf-list nil))
     (with-slots (string start end) context
  
positive.code:      `(when (string= ,form (aref ,array ,start))
          (values ,form (1+ ,start)))
       t)))
  |#
negative.code: 
  ;; new flat method (less nesting is easier to read?)
  (defmethod cpf-list ((car (eql 'and)) form context env)
    (declare (ignore car))
    (unless (cdr form) ; style tweak, doesn't change runtime, mimics (cl:and)
      (return-from cpf-list (slot-value context 'start)))
    (with-slots (string start end) context
  