diff --git a/Text/Boomerang/Combinators.hs b/Text/Boomerang/Combinators.hs
--- a/Text/Boomerang/Combinators.hs
+++ b/Text/Boomerang/Combinators.hs
@@ -13,7 +13,6 @@
 import Prelude             hiding ((.), id, (/))
 import Control.Category    (Category((.), id))
 import Control.Monad       (guard)
-import Control.Monad.Error (Error)
 import Text.Boomerang.Prim    (Parser(..), Boomerang(..), (.~), val, xpure)
 import Text.Boomerang.HStack   ((:-)(..), arg, hhead)
 import Text.Boomerang.TH      (makeBoomerangs)
@@ -101,7 +100,7 @@
 printAs r s = r { ser = map (first (const (s :))) . take 1 . ser r }
 
 -- | Push a value on the stack (during parsing, pop it from the stack when serializing).
-push :: (Eq a, Error e) => a -> Boomerang e tok r (a :- r)
+push :: Eq a => a -> Boomerang e tok r (a :- r)
 push a = xpure (a :-) (\(a' :- t) -> guard (a' == a) >> Just t)
 
 rNil :: Boomerang e tok r ([a] :- r)
diff --git a/Text/Boomerang/Prim.hs b/Text/Boomerang/Prim.hs
--- a/Text/Boomerang/Prim.hs
+++ b/Text/Boomerang/Prim.hs
@@ -15,7 +15,6 @@
 import Control.Applicative (Applicative(..), Alternative(..))
 import Control.Category    (Category((.), id))
 import Control.Monad       (MonadPlus(mzero, mplus), ap)
-import Control.Monad.Error (Error(..))
 import Data.Either         (partitionEithers)
 import Data.Function       (on)
 import Data.Monoid         (Monoid(mappend, mempty))
diff --git a/boomerang.cabal b/boomerang.cabal
--- a/boomerang.cabal
+++ b/boomerang.cabal
@@ -1,5 +1,5 @@
 Name:             boomerang
-Version:          1.4.5.7
+Version:          1.4.6
 License:          BSD3
 License-File:     LICENSE
 Author:           jeremy@seereason.com
@@ -8,15 +8,16 @@
 Category:         Parsing, Text
 Synopsis:         Library for invertible parsing and printing
 Description:      Specify a single unified grammar which can be used for parsing and pretty-printing
-Cabal-Version:    >= 1.6
+Cabal-Version:    >= 1.10
 Build-type:       Simple
-tested-with:      GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1, GHC == 8.2.2, GHC == 8.4.1, GHC == 8.6.5, GHC == 8.8.1
+tested-with:      GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1, GHC == 8.2.2, GHC == 8.4.1, GHC == 8.6.5, GHC == 8.8.3, GHC == 8.10.1
 
 Library
+        Default-Language: Haskell2010
         Build-Depends:    base             >= 4    && < 5,
                           mtl              >= 2.0  && < 2.3,
                           semigroups       >= 0.16 && < 0.20,
-                          template-haskell            < 2.16,
+                          template-haskell            < 2.17,
                           text             >= 0.11 && < 1.3
         Exposed-Modules:  Text.Boomerang
                           Text.Boomerang.Combinators
@@ -29,7 +30,8 @@
                           Text.Boomerang.Texts
                           Text.Boomerang.TH
 
-        Extensions:       DeriveDataTypeable,
+        Other-Extensions:
+                          DeriveDataTypeable,
                           FlexibleContexts,
                           FlexibleContexts,
                           FlexibleInstances,
