diff --git a/haskell-src-exts.cabal b/haskell-src-exts.cabal
--- a/haskell-src-exts.cabal
+++ b/haskell-src-exts.cabal
@@ -1,5 +1,5 @@
 Name:                   haskell-src-exts
-Version:                1.23.0
+Version:                1.23.1
 License:                BSD3
 License-File:           LICENSE
 Build-Type:             Simple
@@ -25,7 +25,8 @@
                         , GHC == 8.2.2
                         , GHC == 8.4.4
                         , GHC == 8.6.5
-                        , GHC == 8.8.1
+                        , GHC == 8.8.3
+                        , GHC == 8.10.1
 
 Extra-Source-Files:
                         README.md
@@ -92,7 +93,7 @@
   other-modules:       Extensions
   GHC-Options:         -threaded -Wall
   Default-language:    Haskell2010
-  Build-depends:       base < 5,
+  Build-depends:       base,
                        mtl,
                        containers,
                        haskell-src-exts,
diff --git a/src/Language/Haskell/Exts/InternalParser.ly b/src/Language/Haskell/Exts/InternalParser.ly
--- a/src/Language/Haskell/Exts/InternalParser.ly
+++ b/src/Language/Haskell/Exts/InternalParser.ly
@@ -753,6 +753,7 @@
 >         : ty_fam_inst_eqns ';' ty_fam_inst_eqn   { $1 ++ [$3] }
 >         | ty_fam_inst_eqns ';'                   { $1 }
 >         | ty_fam_inst_eqn                        { [$1] }
+>         |                                        { [] }
 
 > ty_fam_inst_eqn :: { TypeEqn L }
 >         : truectype '=' truectype
diff --git a/src/Language/Haskell/Exts/ParseMonad.hs b/src/Language/Haskell/Exts/ParseMonad.hs
--- a/src/Language/Haskell/Exts/ParseMonad.hs
+++ b/src/Language/Haskell/Exts/ParseMonad.hs
@@ -48,7 +48,9 @@
 import Control.Monad (when, liftM, ap)
 import qualified Control.Monad.Fail as Fail
 import Data.Monoid hiding ((<>))
+#if !MIN_VERSION_base(4,13,0)
 import Data.Semigroup (Semigroup(..))
+#endif
 -- To avoid import warnings for Control.Applicative, Data.Monoid, and Data.Semigroup
 import Prelude
 
diff --git a/src/Language/Haskell/Exts/SrcLoc.hs b/src/Language/Haskell/Exts/SrcLoc.hs
--- a/src/Language/Haskell/Exts/SrcLoc.hs
+++ b/src/Language/Haskell/Exts/SrcLoc.hs
@@ -18,6 +18,10 @@
 import Data.Data
 import GHC.Generics (Generic)
 
+showInt :: Int -> String
+showInt i | i < 0 = "(" ++ show i ++ ")"
+showInt i = show i
+
 -- | A single position in the source.
 data SrcLoc = SrcLoc
     { srcFilename :: String
@@ -29,7 +33,7 @@
 instance Show SrcLoc where
   showsPrec n (SrcLoc fn sl sc) =
     showParen (n >= 11) $
-      showString $ "SrcLoc " ++ show fn ++ " " ++ unwords (map show [sl,sc])
+      showString $ "SrcLoc " ++ show fn ++ " " ++ unwords (map showInt [sl,sc])
 
 noLoc :: SrcLoc
 noLoc = SrcLoc "" (-1) (-1)
@@ -47,7 +51,7 @@
 instance Show SrcSpan where
   showsPrec n (SrcSpan fn sl sc el ec) =
     showParen (n >= 11) $
-      showString $ "SrcSpan " ++ show fn ++ " " ++ unwords (map show [sl,sc,el,ec])
+      showString $ "SrcSpan " ++ show fn ++ " " ++ unwords (map showInt [sl,sc,el,ec])
 
 
 -- | Returns 'srcSpanStartLine' and 'srcSpanStartColumn' in a pair.
diff --git a/tests/examples/AmbiguousFixities.hs.exactprinter.golden b/tests/examples/AmbiguousFixities.hs.exactprinter.golden
--- a/tests/examples/AmbiguousFixities.hs.exactprinter.golden
+++ b/tests/examples/AmbiguousFixities.hs.exactprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"
+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
diff --git a/tests/examples/AmbiguousFixities.hs.prettyparser.golden b/tests/examples/AmbiguousFixities.hs.prettyparser.golden
--- a/tests/examples/AmbiguousFixities.hs.prettyparser.golden
+++ b/tests/examples/AmbiguousFixities.hs.prettyparser.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"
+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
diff --git a/tests/examples/AmbiguousFixities.hs.prettyprinter.golden b/tests/examples/AmbiguousFixities.hs.prettyprinter.golden
--- a/tests/examples/AmbiguousFixities.hs.prettyprinter.golden
+++ b/tests/examples/AmbiguousFixities.hs.prettyprinter.golden
@@ -1,1 +1,1 @@
-ParseFailed (SrcLoc "" -1 -1) "Ambiguous infix expression"
+ParseFailed (SrcLoc "" (-1) (-1)) "Ambiguous infix expression"
