   destroy the buffer and create a fresh one without this variable
   enabled.")
 (make-variable-buffer-local 'intero-give-up)
+
+(defvar intero-try-with-build nil
+  "Try starting intero without --no-build. Slower, but will build
+  required dependencies.")
+(make-variable-buffer-local 'intero-try-with-build)
+
+(defvar intero-starting nil
+  "Is the intero process starting up?")
+(make-variable-buffer-local 'intero-starting)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Interactive commands

      (with-current-buffer buffer
        (erase-buffer)
        (setq intero-targets targets)
        (setq intero-arguments arguments)
        (setq intero-callbacks
              (list (list source-buffer
                          (lambda (source-buffer _msg)
                            (when source-buffer
                              (with-current-buffer source-buffer
                                (when flycheck-mode
                                  (run-with-timer 0 nil
                                                  'intero-call-in-buffer
                                                  (current-buffer)
                                                  'intero-flycheck-buffer))))
                            (message "Booted up intero!"))))))
      (set-process-filter process
                          (lambda (process string)

  (setq intero-targets targets)
  (let ((arguments (intero-make-options-list
                    (or targets
                        (list (buffer-local-value 'intero-package-name buffer)))
                    t)))
    (insert (propertize
             (format "Starting:\n  stack ghci %s\n" (combine-and-quote-strings arguments))
             'face 'font-lock-comment-face))
