         (funcall fsymb)))))
 
 ;;;###autoload
-(define-derived-mode fstar-mode prog-mode "F✪"
+(define-derived-mode fstar-mode prog-mode '("" fstar--spin-modename fstar-subp--modeline-label)
   :syntax-table fstar-syntax-table
   (fstar-run-module-functions 'setup))
 

          (setq fstar--spin-counter 0))
        (let ((icon (substring fstar-spin-theme fstar--spin-counter (1+ fstar--spin-counter))))
          (setq icon (compose-string icon 0 1 (format "\t%c\t" (aref icon 0))))
          (setq-local mode-name `("F" ,icon))
          (force-mode-line-update)))
    (cancel-timer timer)))


    (cancel-timer fstar--spin-timer)
    (setq-local fstar--spin-timer nil)))

(defvar fstar--spin-modename "F✪"
  "String build by the snippet to replace the mode name.")
(put 'fstar--spin-modename 'risky-local-variable t)

(defun fstar--spin-tick (buffer timer)
  "Update fstar-mode's mode-line indicator in BUFFER.
TIMER is the timer that caused this event to fire."
