 (defun fstar-subp-advance-next ()
   "Process buffer until `fstar-subp-block-sep'."
   (interactive)
+  (fstar-subp-start)
   (goto-char (fstar-subp-unprocessed-beginning))
   (fstar-subp-skip-comments-and-whitespace)
   (-if-let* ((next-start (re-search-forward fstar-subp-block-sep nil t)))

    (accept-process-output fstar-subp--process 0.25 nil t))
  (fstar-subp-killed fstar-subp--process))

(defun fstar-subp-sentinel (proc _signal)
  "Hamdle signals from PROC."
  (when (not (process-live-p proc))
    (fstar-subp-killed proc)))

(defun fstar-subp-remove-tracking-overlays ()

(defun fstar-subp-process-overlay (overlay)
  "Send the contents of OVERLAY to the underlying F* process."
  (fstar-assert (not fstar-subp--busy-now))
  (fstar-subp-start)
  (fstar-subp-set-status overlay 'busy)
  (setq fstar-subp--busy-now overlay)
  (fstar-subp-send-region (overlay-start overlay) (overlay-end overlay)))

(defun fstar-subp-process-queue ()
  "Process the next pending overlay, if any."
  (fstar-subp-start)
  (unless fstar-subp--busy-now
    (-if-let* ((overlay (car-safe (fstar-subp-tracking-overlays 'pending))))
        (progn (fstar-subp-log "Processing queue")
