   :verify (lambda (checker) (append (fstar--flycheck-verify-enabled checker)
                                (fstar--flycheck-verify-subp-available)))
   :predicate (lambda ()
-               (and (fstar--has-feature 'flycheck-interactive)
+               (and (fstar-subp--has-feature 'peek)
                     (fstar--flycheck-enabled 'fstar-interactive)
                     (fstar-subp--can-run-flycheck))))
 

            (pcase .kind
              ("message"
               (fstar-subp--process-message .level .contents))
              ("response"
               (let ((status (fstar-subp-json--parse-status .status)))
                 (fstar-subp--process-response .query-id status .response)))))))))

     (with-current-buffer buf
       ,@body)))

;;;; Compatibility

(defvar-local fstar-subp--features nil
  "Dynamic list of features offered by the current subprocess.")

(defun fstar-subp--has-feature (feature &optional error-fn)
  "Check if FEATURE is available in current F* subprocess.
If not, raise an error with ERROR-FN (if supplied)."
  (if (assoc feature fstar--features-min-version-alist)
      (fstar--has-feature feature error-fn)
    (or (member feature fstar-subp--features)
        (and error-fn
             (funcall error-fn "This feature isn't available \
in your version of F*.  You're running version %s" fstar--vernum)))))

;;;; Utilities

(defun fstar-in-comment-p ()
