diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,7 @@
-2018-00-27 v0.5.6.0
-	* Support GHC 8.4 slpha2
+2018-03-11 v0.5.6.1
+	* Relax base constraints so tests can configure with GHC 8.4.1
+2018-01-27 v0.5.6.0
+	* Support GHC 8.4 alpha2
 	* Include test examples for GHC 8.2
 	* Fix parseModuleFromString to correctly handle the sheband case (@lspitzner)
 2017-07-23 v0.5.5.0
diff --git a/ghc-exactprint.cabal b/ghc-exactprint.cabal
--- a/ghc-exactprint.cabal
+++ b/ghc-exactprint.cabal
@@ -1,5 +1,5 @@
 name:                ghc-exactprint
-version:             0.5.6.0
+version:             0.5.6.1
 synopsis:            ExactPrint for GHC
 description:         Using the API Annotations available from GHC 7.10.2, this
                      library provides a means to round trip any code that can
@@ -138,7 +138,7 @@
   if impl (ghc < 7.10.2)
       buildable: False
   Build-depends:       HUnit >= 1.2
-                     , base < 4.11
+                     , base < 4.12
                      , bytestring
                      , containers >= 0.5
                      , Diff
diff --git a/src/Language/Haskell/GHC/ExactPrint/Parsers.hs b/src/Language/Haskell/GHC/ExactPrint/Parsers.hs
--- a/src/Language/Haskell/GHC/ExactPrint/Parsers.hs
+++ b/src/Language/Haskell/GHC/ExactPrint/Parsers.hs
@@ -190,7 +190,11 @@
 parseModuleFromStringInternal dflags fileName str =
   let (str1, lp) = stripLinePragmas str
       res        = case runParser GHC.parseModule dflags fileName str1 of
+#if __GLASGOW_HASKELL__ >= 804
+        GHC.PFailed _ ss m  -> Left (ss, GHC.showSDoc dflags m)
+#else
         GHC.PFailed ss m    -> Left (ss, GHC.showSDoc dflags m)
+#endif
         GHC.POk     x  pmod -> Right $ (mkApiAnns x, lp, dflags, pmod)
   in  postParseTransform res normalLayout
 
diff --git a/tests/Roundtrip.hs b/tests/Roundtrip.hs
--- a/tests/Roundtrip.hs
+++ b/tests/Roundtrip.hs
@@ -13,7 +13,7 @@
 import System.Exit
 import System.FilePath
 import System.IO
-import System.IO.Temp
+-- import System.IO.Temp
 import Test.Common
 import Test.CommonUtils
 import Test.HUnit
@@ -31,6 +31,7 @@
 writeCPP :: FilePath -> IO ()
 writeCPP fp = appendFileFlush cppFile (('\n' : fp))
 
+writeError :: FilePath -> IO ()
 writeError = writeCPP
 
 writeParseFail :: FilePath -> String -> IO ()
@@ -62,6 +63,7 @@
 
 -- ---------------------------------------------------------------------
 
+readFileIfPresent :: FilePath -> IO [String]
 readFileIfPresent fileName = do
   isPresent <- doesFileExist fileName
   if isPresent
@@ -100,7 +102,7 @@
       !parseFailList <- lines <$> readFile parseFailFile
       let done = S.fromList (processedList ++ cppList ++ blackList ++ knownFailures ++ parseFailList)
       tsts <- TestList <$> mapM (tests done) ds
-      runTests tsts
+      _ <- runTests tsts
       return ()
 
 runTests :: Test -> IO Counts
diff --git a/tests/Static.hs b/tests/Static.hs
--- a/tests/Static.hs
+++ b/tests/Static.hs
@@ -54,7 +54,6 @@
 page (prev, out, next) (Failure res fname) = do
 --  traceM out
   original <- readFile fname
-  -- let diff = getDiff (tokenize original) (tokenize res)
   let lres = lines res
   let maxLines = 50000
   let diff = getGroupedDiff (lines original) (take maxLines lres)
@@ -67,9 +66,6 @@
     else
       -- writeFile ("failures" </> out) (mkPage (ppDiff diff) prev next original res)
       writeFile (failuresHtmlDir </> out) (mkPage fname (ppDiff diff) prev next original res)
-  where
-    tokenize :: String -> [[String]]
-    -- tokenize s = map (:[]) . lines $ s
 
 mkPage :: FilePath -> String -> String -> String -> String -> String -> String
 mkPage filename diff prev next original printed  =
