diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -32,3 +32,7 @@
 **v0.2.1.2**
 
   * Support GHC 8.8
+
+**v0.2.1.4**
+
+  * Support GHC 8.10
diff --git a/d10.cabal b/d10.cabal
--- a/d10.cabal
+++ b/d10.cabal
@@ -1,5 +1,5 @@
 name: d10
-version: 0.2.1.2
+version: 0.2.1.4
 category: Data
 synopsis: Digits 0-9
 
@@ -60,6 +60,7 @@
   , GHC == 8.4.3
   , GHC == 8.6.1
   , GHC == 8.8.1
+  , GHC == 8.10.1
 
 extra-source-files:
     README.md
@@ -74,8 +75,8 @@
   hs-source-dirs: src
 
   build-depends:
-      base             >= 4.10 && < 4.14
-    , template-haskell >= 2.12 && < 2.16
+      base             >= 4.10 && < 4.15
+    , template-haskell >= 2.12 && < 2.17
 
   exposed-modules:
       Data.D10.Char
@@ -91,5 +92,5 @@
   ghc-options: -threaded -rtsopts -with-rtsopts=-N
 
   build-depends:
-      base             >= 4.10 && < 4.14
+      base             >= 4.10 && < 4.15
     , doctest          >= 0.13 && < 0.17
diff --git a/src/Data/D10/Char.hs b/src/Data/D10/Char.hs
--- a/src/Data/D10/Char.hs
+++ b/src/Data/D10/Char.hs
@@ -102,6 +102,7 @@
 -- $setup
 -- >>> :set -XQuasiQuotes
 -- >>> :set -XTemplateHaskell
+-- >>> :set -fno-warn-overlapping-patterns
 
 ---------------------------------------------------
 
@@ -728,7 +729,7 @@
 -- does something similar.
 
 d10Exp :: Integral a => a -> Q Exp
-d10Exp = integralD10Fail >=> lift @D10
+d10Exp = integralD10Fail >=> (lift :: D10 -> Q Exp)
 
 -- | Produces an expression of type @['D10']@ that can be used
 -- in a Template Haskell splice.
@@ -751,7 +752,7 @@
 -- does something similar.
 
 d10ListExp :: String -> Q Exp
-d10ListExp = strD10ListFail >=> lift @[D10]
+d10ListExp = strD10ListFail >=> (lift :: [D10] -> Q Exp)
 
 ---------------------------------------------------
 
diff --git a/src/Data/D10/Num.hs b/src/Data/D10/Num.hs
--- a/src/Data/D10/Num.hs
+++ b/src/Data/D10/Num.hs
@@ -105,6 +105,7 @@
 -- $setup
 -- >>> :set -XQuasiQuotes
 -- >>> :set -XTemplateHaskell
+-- >>> :set -fno-warn-overlapping-patterns
 
 ---------------------------------------------------
 
@@ -735,7 +736,7 @@
 -- does something similar.
 
 d10Exp :: forall a b. (Integral b, Lift a, Num a) => b -> Q Exp
-d10Exp = integralD10Fail >=> lift @(D10 a)
+d10Exp = integralD10Fail >=> (lift :: D10 a -> Q Exp)
 
 -- | Produces an expression of type @['D10' a]@ that can be used
 -- in a Template Haskell splice.
@@ -758,7 +759,7 @@
 -- does something similar.
 
 d10ListExp :: forall a. (Lift a, Num a) => String -> Q Exp
-d10ListExp = strD10ListFail >=> lift @[D10 a]
+d10ListExp = strD10ListFail >=> (lift :: [D10 a] -> Q Exp)
 
 ---------------------------------------------------
 
@@ -840,7 +841,7 @@
 
 d10 :: forall a. (Lift a, Integral a) => QuasiQuoter
 d10 = QuasiQuoter
-    { quoteExp  = strD10Fail >=> lift @(D10 a)
+    { quoteExp  = strD10Fail >=> (lift :: D10 a -> Q Exp)
     , quotePat  = strD10Fail >=> d10Pat @a
     , quoteType = \_ -> fail "d10 cannot be used in a type context"
     , quoteDec  = \_ -> fail "d10 cannot be used in a declaration context"
@@ -887,7 +888,7 @@
 
 d10list :: forall a. (Lift a, Integral a) => QuasiQuoter
 d10list = QuasiQuoter
-    { quoteExp  = strD10ListFail >=> lift @[D10 a]
+    { quoteExp  = strD10ListFail >=> (lift :: [D10 a] -> Q Exp)
     , quotePat  = strD10ListFail >=> d10ListPat @a
     , quoteType = \_ -> fail "d10list cannot be used in a type context"
     , quoteDec  = \_ -> fail "d10list cannot be used in a declaration context"
diff --git a/src/Data/D10/Safe.hs b/src/Data/D10/Safe.hs
--- a/src/Data/D10/Safe.hs
+++ b/src/Data/D10/Safe.hs
@@ -105,6 +105,7 @@
 -- $setup
 -- >>> :set -XQuasiQuotes
 -- >>> :set -XTemplateHaskell
+-- >>> :set -fno-warn-overlapping-patterns
 
 ---------------------------------------------------
 
@@ -764,7 +765,7 @@
 -- does something similar.
 
 d10Exp :: Integral a => a -> Q Exp
-d10Exp = integralD10Fail >=> lift @D10
+d10Exp = integralD10Fail >=> (lift :: D10 -> Q Exp)
 
 -- | Produces an expression of type @['D10']@ that can be used
 -- in a Template Haskell splice.
@@ -787,7 +788,7 @@
 -- does something similar.
 
 d10ListExp :: String -> Q Exp
-d10ListExp = strD10ListFail >=> lift @[D10]
+d10ListExp = strD10ListFail >=> (lift :: [D10] -> Q Exp)
 
 ---------------------------------------------------
 
