anchor.diff:           ,(wrap-symbol-names
              "defun" "defclass" "defgeneric"
              "defsetf" "defmacro" "defmethod"))
  -        (:register ,(ppcre:parse-string "[^() \\t]+")))
  -      :captures (vector nil
  -                        (make-tm-name 'syntax-keyword-attribute)
  +        (:register symbol))
  +      :captures (vector nil
  +                        (make-tm-name 'syntax-keyword-attribute)
  +                        (make-tm-name 'syntax-function-name-attribute))))
  +    (add-tm-pattern
  +     tmlanguage
  +     (make-tm-match
  +      `(:sequence
  +        "(" ,(wrap-symbol-names "defun")
  +        ,(ppcre:parse-string "\\s*\\(")
  +        ,(ppcre:parse-string "((?i:setf))\\s+") (:register symbol))
  +      :captures (vector nil
  +                        (make-tm-name 'syntax-keyword-attribute)
  +                        (make-tm-name 'syntax-function-name-attribute)
                           (make-tm-name 'syntax-function-name-attribute))))
       (add-tm-pattern
        tmlanguage
  
positive.code:         "("
          ,(wrap-symbol-names
            "deftype" "defpackage" "defstruct")
          (:register ,(ppcre:parse-string "[^() \\t]+")))
        :captures (vector nil
                          (make-tm-name 'syntax-keyword-attribute)
                          (make-tm-name 'syntax-type-attribute))))
  
negative.code:     maybe-package-prefix
      (:register
       (:group :case-insensitive-p
        ,(let ((args (apply #'word-length-sort names)))
           (if (null (rest args)) (first args) `(:alternation ,@args)))))
      (:alternation (:greedy-repetition 1 nil :whitespace-char-class) :end-anchor #\( #\))))
  
  (defun make-tmlanguage-lisp ()
  