anchor.diff:          (variable-value 'beginning-of-defun-function) 'beginning-of-defun
           (variable-value 'end-of-defun-function) 'end-of-defun))
   
  -(pushnew (cons "\\.nim$" 'nim-mode) *auto-mode-alist* :test #'equal)
  -(pushnew (cons "\\.nimble$" 'nim-mode) *auto-mode-alist* :test #'equal)
  +(pushnew (cons "\\.nim$" 'nim-mode) 
  +         *auto-mode-alist* :test #'equal)
  +(pushnew (cons "\\.nimble$" 'nim-mode)
  +         *auto-mode-alist* :test #'equal)
  +
  
positive.code: 
  (defun tokens (boundary strings)
    (let ((alternation
           `(:alternation ,@(sort (copy-list strings) #'> :key #'length))))
      (if boundary
          `(:sequence ,boundary ,alternation ,boundary)
          alternation)))
  
negative.code:     (set-syntax-parser table tmlanguage)
      table))
  
  ;; three functions below from lem-python-mode,
  ;; it seems almost works
  (defun nim-calc-indent (point)
    (with-point ((point point))
      (let ((tab-width (variable-value 'tab-width :default point))
  