            (save-excursion
              (goto-char comment-start-pos)
              (cond
-              ((looking-at (regexp-quote fstar-build-config-header)) font-lock-doc-face)
               ((looking-at (regexp-quote "(*** ")) '(:inherit font-lock-doc-face :height 2.5))
               ((looking-at (regexp-quote "(**+ ")) '(:inherit font-lock-doc-face :height 1.8))
               ((looking-at (regexp-quote "(**! ")) '(:inherit font-lock-doc-face :height 1.5))

  "Return non-nil if point is inside a comment."
  (nth 4 (syntax-ppss)))

(defun fstar-in-build-config-p ()
  "Return non-nil if point is in build config comment."
  (let ((state (syntax-ppss)))
    (and (nth 4 state)
         (save-excursion
           (goto-char (nth 8 state))
           (looking-at-p (regexp-quote fstar-build-config-header))))))

(defun fstar-subp--column-number-at-pos (pos)
  "Return column number at POS."
  (save-excursion (goto-char pos) (- (point) (point-at-bol))))

  (let ((inhibit-modification-hooks t))
    (when (overlay-buffer overlay) ;; Hooks can be called multiple times
      (cond
       ;; Always allow modifications in comments
       ((fstar-in-comment-p) t)
       ;; Allow modifications (after retracting) in pending overlays, and in
       ;; processed overlays provided that F* isn't busy
       ((or (not (fstar-subp--busy-p))
