anchor.diff:  
   (defun add-tm-pattern (tmlanguage pattern)
     (push pattern (patterns (tmlanguage-patterns tmlanguage))))
  +
  +(defun add-tm-repository (tmlanguage name patterns)
  +  (setf (gethash name (tmlanguage-repository tmlanguage))
  +        patterns))
   
   (defmethod %syntax-scan-region ((tmlanguage tmlanguage) start end)
     (tm-syntax-scan-region start end))
  
positive.code:           make-tm-match
            make-tm-region
            add-tm-pattern
            make-tm-patterns
            make-tm-name))
  
  (defclass tmlanguage (syntax-parser)
    ((patterns
      :initarg :patterns
      :accessor tmlanguage-patterns)))
  
  (defclass tm-rule ()
    ((name
  
negative.code:                  :content-name content-name
                   :patterns patterns))
  
  (defun make-tm-include (spec)
    (cond ((string= spec "$self")
           (make-instance 'tm-include :type :self))
          ((char= #\# (schar spec 0))
           (make-instance 'tm-include :type :repository :refer (subseq spec 1)))
          (t
           (error "unsupported spec: ~A" spec))))
  
  (defun make-regex-matcher (regex)
    (ppcre:create-scanner regex))
  
  