anchor.diff:        (values stop prefix))))
   
   (defmethod cpf ((form string) context env)
  +  (declare (ignore env))
     (values
      (typecase context
        (string-context
  
positive.code: 
  (defmethod cpf-list ((car (eql 'or>)) form context env)
    "return the rule that has the longest match"
    (unless (cdr form) ; style tweak, doesn't change runtime, mimics (cl:or)
      (return-from cpf-list nil))
    (with-slots (string start end) context
  
negative.code:    t))
  
  (defmethod cpf ((form character) context env)
    (declare (ignore env))
    (values
     (with-slots (string start end) context
       `(when (and (< ,start ,end) (char= ,form (char ,string ,start)))
  