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:      (make-tm-match
        `(:sequence
          symbol-boundary-begin
          ,(ppcre:parse-string ":[^()\" \\t]+")
          symbol-boundary-end)
        :name 'syntax-constant-attribute))
      (add-tm-pattern
  
negative.code:    (:sequence
      (:greedy-repetition 1 nil (:inverted-char-class #\( #\) #\space #\tab)) #\:)))
  
  (ppcre:define-parse-tree-synonym symbol
    (:greedy-repetition 1 nil
     (:inverted-char-class #\( #\) :whitespace-char-class #\; #\")))
  
  (defun word-length-sort (&rest words)
    (sort (copy-list words) #'> :key #'length))
  
  