anchor.diff:                            `((lambda (s)
                                 (and (plusp (length s))
                                      (,',test ,(character prefix)
  -                                     (aref s 0))))
  +                                            (aref s 0))))
                               (string ,string))
                             call)))))
       (dcm string^= char=)
  
positive.code:                         `(defsubst ,name (,s1 ,s2 &key (start1 0) end1 (start2 0) end2 ,@keys)
                             ,@(unsplice docstring)
                             (declare (array-length start1 start2))
                             (let* ((,s1 (string ,s1))
                                    (,s2 (string ,s2))
                                    (end1 (or end1 (length ,s1)))
  
negative.code:                           `((lambda (s)
                                (and (plusp (length s))
                                     (,',test ,(character suffix)
                                              (aref s (1- (length s))))))
                              (string ,string))
                            call)))))
      (dcm string$= char=)
  