 (defvar ac-fsharp-blocking-timeout 1)
 (defvar ac-fsharp-idle-timeout 1)
 
+(defvar ac-fsharp-use-pos-tip t)
+
+
+; Internal state
 (defvar ac-fsharp-status 'idle)
 (defvar ac-fsharp-completion-process nil)
 (defvar ac-fsharp-partial-data "")

          (run-with-idle-timer
           ac-fsharp-idle-timeout
           t
           (lambda () (ac-fsharp-get-errors)))))

  ;(add-hook 'before-save-hook 'ac-fsharp-reparse-buffer)
  ;(local-set-key (kbd ".") 'completion-at-point)
  )


; Consider using 'text' for filtering
; TODO: This caching is a bit optimistic. It might not always be correct

         ((string/starts-with msg "DATA: tooltip")
          (let ((data (replace-regexp-in-string "DATA: tooltip\n" ""
                                                msg)))
            (ac-fsharp-show-tip data)))

         ((string/starts-with msg "DATA: errors")
          (ac-fsharp-show-errors
