diff --git a/sensei.cabal b/sensei.cabal
--- a/sensei.cabal
+++ b/sensei.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.5.
+-- This file has been generated from package.yaml by hpack version 0.34.7.
 --
 -- see: https://github.com/sol/hpack
 
 name:           sensei
-version:        0.6.1
+version:        0.6.2
 synopsis:       Automatically run Hspec tests on file modifications
 category:       Development
 homepage:       https://github.com/hspec/sensei#readme
diff --git a/src/Util.hs b/src/Util.hs
--- a/src/Util.hs
+++ b/src/Util.hs
@@ -10,6 +10,7 @@
 
 #ifdef TEST
 , filterGitIgnoredFiles_
+, gitCheckIgnoreFeedback
 , writableByOthers
 #endif
 ) where
@@ -55,20 +56,24 @@
 gitCheckIgnore :: [FilePath] -> IO (Feedback, [FilePath])
 gitCheckIgnore files = do
   (_, ignoredFiles, err) <- readProcessWithExitCode "git" ["check-ignore", "--stdin", "-z"] $ join_ files
-  return (feedback err, split ignoredFiles)
+  return (gitCheckIgnoreFeedback err, split ignoredFiles)
   where
     join_ = intercalate "\0"
     split = map T.unpack . T.split (== '\0') . T.pack
-    feedback err
-      | err == "fatal: not a git repository (or any of the parent directories): .git\n" = Just (Cyan, "warning: not a git repository - .gitignore support not available\n")
-      | err == "" = Nothing
-      | otherwise = Just (Red, err)
 
+gitCheckIgnoreFeedback :: String -> Feedback
+gitCheckIgnoreFeedback err
+  | "fatal: not a git repository (or any " `isPrefixOf` err = notGitWarning
+  | err == "" = Nothing
+  | otherwise = Just (Red, err)
+  where
+    notGitWarning = Just (Cyan, "warning: not a git repository - .gitignore support not available\n")
+
 normalizeTypeSignatures :: String -> String
 normalizeTypeSignatures = normalize . concatMap replace
   where
     normalize = \case
-      xs | "\n  :: " `isPrefixOf` xs -> normalizeTypeSignatures (drop 2 xs)
+      '\n' : ' ' : ' ' : xs -> normalizeTypeSignatures (' ' : dropWhile (== ' ') xs)
       x : xs -> x : normalizeTypeSignatures xs
       [] -> []
 
diff --git a/test/UtilSpec.hs b/test/UtilSpec.hs
--- a/test/UtilSpec.hs
+++ b/test/UtilSpec.hs
@@ -18,11 +18,14 @@
 
   describe "normalizeTypeSignatures" $ do
     it "removes newlines from type signatures" $ do
-      normalizeTypeSignatures "foo\n  :: Int" `shouldBe` "foo :: Int"
+      let signature = "foo\n  :: IO\n       Int\n"
+      normalizeTypeSignatures signature `shouldBe` "foo :: IO Int\n"
 
     it "replaces unicode characters" $ do
       normalizeTypeSignatures "head ∷ [a] → a" `shouldBe` "head :: [a] -> a"
 
+  let gitlessFeedback = Just (Cyan, "warning: not a git repository - .gitignore support not available\n")
+
   describe "filterGitIgnoredFiles_" $ do
     around_ inTempDirectory $ do
       it "discards files that are ignored by git" $ do
@@ -32,8 +35,27 @@
 
       context "when used outside of a git repository" $ do
         it "returns all files" $ do
-          let feedback = Just (Cyan, "warning: not a git repository - .gitignore support not available\n")
-          filterGitIgnoredFiles_ ["foo", "bar"] `shouldReturn` (feedback, ["foo", "bar"])
+          filterGitIgnoredFiles_ ["foo", "bar"] `shouldReturn` (gitlessFeedback, ["foo", "bar"])
+
+  describe "gitCheckIgnoreFeedback" $ do
+    context "when git reports no repository" $ do
+      it "returns gitless warning" $ do
+        let err = "fatal: not a git repository (or any of the parent directories): .git\n"
+        gitCheckIgnoreFeedback err `shouldBe` gitlessFeedback
+
+    context "when git stops at a filesystem boundary" $ do
+      it "returns gitless warning" $ do
+        let err = "fatal: not a git repository (or any parent up to mount point /)\nStopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n"
+        gitCheckIgnoreFeedback err `shouldBe` gitlessFeedback
+
+    context "when git reports no error" $ do
+      it "returns Nothing" $ do
+        gitCheckIgnoreFeedback "" `shouldBe` Nothing
+
+    context "when git reports any other error" $ do
+      it "returns the error" $ do
+        let err = "fatal: Unable to do such and such"
+        gitCheckIgnoreFeedback err `shouldBe` Just (Red, err)
 
   describe "dotGhciWritableByOthers" $ do
     around_ inTempDirectory $ do
