diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,9 @@
 # Revision history for serialise
 
+## 0.2.3.0  -- 2020-05-10
+
+* Bounds bumps and GHC 8.10 compatibility
+
 ## 0.2.2.0  -- 2019-12-29
 
 * Export `encodeContainerSkel`, `encodeMapSkel` and `decodeMapSkel` from
diff --git a/serialise.cabal b/serialise.cabal
--- a/serialise.cabal
+++ b/serialise.cabal
@@ -1,5 +1,5 @@
 name:                serialise
-version:             0.2.2.0
+version:             0.2.3.0
 synopsis:            A binary serialisation library for Haskell values.
 description:
   This package (formerly @binary-serialise-cbor@) provides pure, efficient
@@ -30,7 +30,7 @@
 category:            Codec
 build-type:          Simple
 tested-with:
-  GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC==8.8.1
+  GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.2, GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.3, GHC == 8.10.1
 
 extra-source-files:
   ChangeLog.md
@@ -64,11 +64,11 @@
 
   build-depends:
     array                   >= 0.4     && < 0.6,
-    base                    >= 4.7     && < 5.0,
+    base                    >= 4.7     && < 4.15,
     bytestring              >= 0.10.4  && < 0.11,
     cborg                   == 0.2.*,
     containers              >= 0.5     && < 0.7,
-    ghc-prim                >= 0.3.1.0 && < 0.6,
+    ghc-prim                >= 0.3.1.0 && < 0.7,
     half                    >= 0.2.2.3 && < 0.4,
     hashable                >= 1.2     && < 2.0,
     primitive               >= 0.5     && < 0.8,
@@ -78,7 +78,7 @@
 
   if flag(newtime15)
     build-depends:
-      time                  >= 1.5     && < 1.10
+      time                  >= 1.5     && < 1.11
   else
     build-depends:
       time                  >= 1.4     && < 1.5,
@@ -116,19 +116,19 @@
     Tests.GeneralisedUTF8
 
   build-depends:
-    base                    >= 4.7     && < 5.0,
+    base                    >= 4.7     && < 4.15,
     bytestring              >= 0.10.4  && < 0.11,
     directory               >= 1.0     && < 1.4,
     filepath                >= 1.0     && < 1.5,
     text                    >= 1.1     && < 1.3,
-    time                    >= 1.4     && < 1.10,
+    time                    >= 1.4     && < 1.11,
     containers              >= 0.5     && < 0.7,
     unordered-containers    >= 0.2     && < 0.3,
     primitive               >= 0.5     && < 0.8,
     cborg,
     serialise,
-    QuickCheck              >= 2.9     && < 2.14,
-    tasty                   >= 0.11    && < 1.3,
+    QuickCheck              >= 2.9     && < 2.15,
+    tasty                   >= 0.11    && < 1.4,
     tasty-hunit             >= 0.9     && < 0.11,
     tasty-quickcheck        >= 0.8     && < 0.11,
     quickcheck-instances    >= 0.3.12  && < 0.4,
@@ -153,7 +153,7 @@
     Instances.Time
 
   build-depends:
-    base                    >= 4.7     && < 5.0,
+    base                    >= 4.7     && < 4.15,
     binary                  >= 0.7     && < 0.11,
     bytestring              >= 0.10.4  && < 0.11,
     vector                  >= 0.10    && < 0.13,
@@ -165,7 +165,7 @@
 
   if flag(newtime15)
     build-depends:
-      time                  >= 1.5     && < 1.10
+      time                  >= 1.5     && < 1.11
   else
     build-depends:
       time                  >= 1.4     && < 1.5,
@@ -197,10 +197,10 @@
     SimpleVersus
 
   build-depends:
-    base                    >= 4.7     && < 5.0,
+    base                    >= 4.7     && < 4.15,
     binary                  >= 0.7     && < 0.11,
     bytestring              >= 0.10.4  && < 0.11,
-    ghc-prim                >= 0.3.1.0 && < 0.6,
+    ghc-prim                >= 0.3.1.0 && < 0.7,
     vector                  >= 0.10    && < 0.13,
     cborg,
     serialise,
@@ -244,11 +244,11 @@
 
   build-depends:
     array                   >= 0.4     && < 0.6,
-    base                    >= 4.7     && < 5.0,
+    base                    >= 4.7     && < 4.15,
     binary                  >= 0.7     && < 0.11,
     bytestring              >= 0.10.4  && < 0.11,
     directory               >= 1.0     && < 1.4,
-    ghc-prim                >= 0.3.1.0 && < 0.6,
+    ghc-prim                >= 0.3.1.0 && < 0.7,
     fail                    >= 4.9.0.0 && < 4.10,
     text                    >= 1.1     && < 1.3,
     vector                  >= 0.10    && < 0.13,
@@ -270,7 +270,7 @@
 
   if flag(newtime15)
     build-depends:
-      time                  >= 1.5     && < 1.10
+      time                  >= 1.5     && < 1.11
   else
     build-depends:
       time                  >= 1.4     && < 1.5,
diff --git a/src/Codec/Serialise/Class.hs b/src/Codec/Serialise/Class.hs
--- a/src/Codec/Serialise/Class.hs
+++ b/src/Codec/Serialise/Class.hs
@@ -1158,6 +1158,10 @@
       Word8Rep      -> encodeListLen 1 <> encodeWord 14
       Word16Rep     -> encodeListLen 1 <> encodeWord 15
 #endif
+#if MIN_VERSION_base(4,14,0)
+      Int32Rep      -> encodeListLen 1 <> encodeWord 16
+      Word32Rep     -> encodeListLen 1 <> encodeWord 17
+#endif
 
   decode = do
     len <- decodeListLen
@@ -1181,6 +1185,10 @@
       14 | len == 1 -> pure Word8Rep
       15 | len == 1 -> pure Word16Rep
 #endif
+#if MIN_VERSION_base(4,14,0)
+      16 | len == 1 -> pure Int32Rep
+      17 | len == 1 -> pure Word32Rep
+#endif
       _             -> fail "Data.Serialise.Binary.CBOR.getRuntimeRep: invalid tag"
 
 -- | @since 0.2.0.0
@@ -1288,7 +1296,6 @@
  <> encodeWord 3
  <> encodeTypeRep arg
  <> encodeTypeRep res
-encodeTypeRep _ = error "Codec.CBOR.Class.encodeTypeRep: Impossible"
 
 -- | @since 0.2.0.0
 instance Typeable a => Serialise (TypeRep (a :: k)) where
