diff --git a/generic-src/Language/Haskell/GHC/Parser.hs b/generic-src/Language/Haskell/GHC/Parser.hs
--- a/generic-src/Language/Haskell/GHC/Parser.hs
+++ b/generic-src/Language/Haskell/GHC/Parser.hs
@@ -76,12 +76,8 @@
 #else
 import ErrUtils hiding (ErrMsg)
 #endif
-#if MIN_VERSION_ghc(8,4,0)
-import GHC hiding (Located, Parsed, parser)
-#else
-import GHC hiding (Located, parser)
-#endif
 
+import GHC hiding (Located, Parsed, parser)
 import qualified Language.Haskell.GHC.HappyParser as Parse
 
 -- | A line number in an input string.
@@ -115,49 +111,27 @@
 data Parser a = Parser (P a)
 
 -- Our parsers.
-#if MIN_VERSION_ghc(8,4,0)
 parserStatement :: Parser (Maybe (LStmt GhcPs (LHsExpr GhcPs)))
-#else
-parserStatement :: Parser (Maybe (LStmt RdrName (LHsExpr RdrName)))
-#endif
 parserStatement = Parser Parse.fullStatement
 
-#if MIN_VERSION_ghc(8,4,0)
 parserImport :: Parser (LImportDecl GhcPs)
-#else
-parserImport :: Parser (LImportDecl RdrName)
-#endif
 parserImport = Parser Parse.fullImport
 
-#if MIN_VERSION_ghc(8,4,0)
 parserDeclaration :: Parser (OrdList (LHsDecl GhcPs))
-#else
-parserDeclaration :: Parser (OrdList (LHsDecl RdrName))
-#endif
 parserDeclaration = Parser Parse.fullDeclaration
 
-#if MIN_VERSION_ghc(8,4,0)
 parserExpression :: Parser (LHsExpr GhcPs)
-#else
-parserExpression :: Parser (LHsExpr RdrName)
-#endif
 parserExpression = Parser Parse.fullExpression
 
-#if MIN_VERSION_ghc(8,4,0)
 parserTypeSignature :: Parser (SrcLoc.Located (OrdList (LHsDecl GhcPs)))
-#else
-parserTypeSignature :: Parser (SrcLoc.Located (OrdList (LHsDecl RdrName)))
-#endif
 parserTypeSignature = Parser Parse.fullTypeSignature
 
 #if MIN_VERSION_ghc(9,6,0)
 parserModule :: Parser (SrcLoc.Located (HsModule GhcPs))
 #elif MIN_VERSION_ghc(9,0,0)
 parserModule :: Parser (SrcLoc.Located HsModule)
-#elif MIN_VERSION_ghc(8,4,0)
-parserModule :: Parser (SrcLoc.Located (HsModule GhcPs))
 #else
-parserModule :: Parser (SrcLoc.Located (HsModule RdrName))
+parserModule :: Parser (SrcLoc.Located (HsModule GhcPs))
 #endif
 parserModule = Parser Parse.fullModule
 
@@ -206,14 +180,8 @@
           ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan
           col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan
         in Failure errMsg $ Loc ln col
-#elif MIN_VERSION_ghc(8,4,0)
-    toParseOut (PFailed _ spn@(RealSrcSpan realSpan) err) =
-      let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err
-          ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan
-          col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan
-        in Failure errMsg $ Loc ln col
 #else
-    toParseOut (PFailed spn@(RealSrcSpan realSpan) err) =
+    toParseOut (PFailed _ spn@(RealSrcSpan realSpan) err) =
       let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err
           ln = srcLocLine $ SrcLoc.realSrcSpanStart realSpan
           col = srcLocCol $ SrcLoc.realSrcSpanStart realSpan
@@ -221,12 +189,8 @@
 #endif
 
 #if MIN_VERSION_ghc(8,10,0)
-#elif MIN_VERSION_ghc(8,4,0)
-    toParseOut (PFailed _ spn err) =
-      let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err
-        in Failure errMsg $ Loc 0 0
 #else
-    toParseOut (PFailed spn err) =
+    toParseOut (PFailed _ spn err) =
       let errMsg = printErrorBag $ unitBag $ mkPlainErrMsg flags spn err
         in Failure errMsg $ Loc 0 0
 #endif
diff --git a/ghc-parser.cabal b/ghc-parser.cabal
--- a/ghc-parser.cabal
+++ b/ghc-parser.cabal
@@ -2,7 +2,7 @@
 -- documentation, see http://haskell.org/cabal/users-guide/
 
 name:                ghc-parser
-version:             0.2.6.0
+version:             0.2.7.0
 synopsis:            Haskell source parser from GHC.
 -- description:
 homepage:            https://github.com/IHaskell/IHaskell
@@ -23,10 +23,8 @@
   -- other-modules:
   -- other-extensions:
   build-depends:       base                 >=4.9 && < 5,
-                       ghc                  >=8.0 && <9.9
+                       ghc                  >=8.4 && <9.11
 
-  if impl(ghc >= 8.0) && impl(ghc < 8.4)
-    hs-source-dirs:  generic-src src-8.0
   if impl(ghc >= 8.4) && impl(ghc < 8.10)
     hs-source-dirs:  generic-src src-8.4
   if impl(ghc >= 8.10) && impl(ghc < 9.0)
@@ -39,7 +37,7 @@
     hs-source-dirs:  generic-src src-9.4
   if impl(ghc >= 9.6) && impl(ghc < 9.8)
     hs-source-dirs:  generic-src src-9.6
-  if impl(ghc >= 9.8) && impl(ghc < 9.10)
+  if impl(ghc >= 9.8) && impl(ghc < 9.12)
     hs-source-dirs:  generic-src src-9.8
 
 
diff --git a/src-8.0/Language/Haskell/GHC/HappyParser.hs b/src-8.0/Language/Haskell/GHC/HappyParser.hs
deleted file mode 100644
--- a/src-8.0/Language/Haskell/GHC/HappyParser.hs
+++ /dev/null
@@ -1,41 +0,0 @@
-module Language.Haskell.GHC.HappyParser
-    ( fullStatement
-    , fullImport
-    , fullDeclaration
-    , fullExpression
-    , fullTypeSignature
-    , fullModule
-    ) where
-
-import Parser
-import SrcLoc
-
--- compiler/hsSyn
-import HsSyn
-
--- compiler/utils
-import OrdList
-
--- compiler/parser
-import Lexer
-
--- compiler/basicTypes
-import RdrName
-
-fullStatement :: P (Maybe (LStmt RdrName (LHsExpr RdrName)))
-fullStatement = parseStmt
-
-fullImport :: P (LImportDecl RdrName)
-fullImport = parseImport
-
-fullDeclaration :: P (OrdList (LHsDecl RdrName))
-fullDeclaration = fmap unitOL parseDeclaration
-
-fullExpression :: P (LHsExpr RdrName)
-fullExpression = parseExpression
-
-fullTypeSignature :: P (Located (OrdList (LHsDecl RdrName)))
-fullTypeSignature = fmap (noLoc . unitOL) parseTypeSignature
-
-fullModule :: P (Located (HsModule RdrName))
-fullModule = parseModule
