            (retv (fstar-subp--query-and-wait query 0.01)))
       (pcase retv
         (`(t . (,success ,results))
-         (fstar-subp--info-continuation
-          (apply-partially #'fstar--eldoc-continuation #'identity)
-          (point) success results))
+         (funcall (fstar-subp--info-wrapper
+                   (apply-partially #'fstar--eldoc-continuation #'identity)
+                   (point))
+                  success results))
         (`(needs-callback . ,_)
          (setf (cdr retv)
-               (apply-partially #'fstar-subp--info-continuation
-                                (apply-partially #'fstar--eldoc-continuation #'eldoc-message)
-                                (point))))))))
+               (fstar-subp--info-wrapper
+                (apply-partially #'fstar--eldoc-continuation #'eldoc-message)
+                (point))))))))
 
 (defun fstar--eldoc-truncate-message (fn &rest args)
   "Forward ARGS to FN within scope of binding for `message-truncate-lines'."

  (if (fstar-subp-available-p)
      (fstar-subp--query
       (fstar-subp--positionless-info-query (fstar-subp-company--candidate-fqn candidate))
       (apply-partially #'fstar-subp--info-continuation continuation nil))
    (funcall continuation 'busy)))

(defun fstar-subp-company--meta-continuation (callback info)

(defun fstar-doc-at-point ()
  "Show documentation of identifier at point, if any."
  (interactive)
  (fstar-subp--ensure-available #'user-error 'docs)
  (fstar-subp--query (fstar-subp--positional-info-query (point))
                (fstar-subp--info-wrapper #'fstar--doc-at-point-continuation (point))))

;;;; xref-like features

