   (let* ((root (intero-project-root))
          (buffer-name (intero-hoogle-buffer-name root))
          (buf (get-buffer buffer-name))
+         (initial-buffer (current-buffer))
          (default-directory root))
     (if buf
         buf
       (with-current-buffer (get-buffer-create buffer-name)
+        (intero-inherit-local-variables initial-buffer)
         (cd default-directory)
         (current-buffer)))))
 

  (with-current-buffer (intero-buffer 'backend)
    (or intero-ghc-version
        (setq intero-ghc-version
              (with-temp-buffer
                (cl-case (save-excursion
                           (intero-call-process intero-stack-executable
                                                nil (current-buffer) t "ghc" "--" "--numeric-version"))

          ;;                             Monad var)
          (when (string-match "Redundant constraints?: " text)
            (let* ((redundant-start (match-end 0))
                   (parts (intero-with-temp-buffer
                            (insert (substring text redundant-start))
                            (goto-char (point-min))
                            ;; A lone unparenthesized constraint might
