diff --git a/Control/Monad/Primitive.hs b/Control/Monad/Primitive.hs
--- a/Control/Monad/Primitive.hs
+++ b/Control/Monad/Primitive.hs
@@ -23,18 +23,9 @@
   touch, evalPrim, unsafeInterleave, unsafeDupableInterleave, noDuplicate
 ) where
 
-import GHC.Exts   ( State#, RealWorld, noDuplicate#, touch# )
-import GHC.Base   ( unsafeCoerce#, realWorld# )
-#if MIN_VERSION_base(4,4,0)
-import GHC.Base   ( seq# )
-#else
-import Control.Exception (evaluate)
-#endif
-#if MIN_VERSION_base(4,2,0)
+import GHC.Exts   ( State#, RealWorld, noDuplicate#, touch#
+                  , unsafeCoerce#, realWorld#, seq# )
 import GHC.IO     ( IO(..) )
-#else
-import GHC.IOBase ( IO(..) )
-#endif
 import GHC.ST     ( ST(..) )
 
 import Control.Monad.Trans.Class (lift)
diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+## Changes in version 0.7.0.1
+
+ * Allow building with GHC 8.12.
+
 ## Changes in version 0.7.0.0
 
   * Remove `Addr` data type, lifted code should use `Ptr a` now
diff --git a/primitive.cabal b/primitive.cabal
--- a/primitive.cabal
+++ b/primitive.cabal
@@ -1,6 +1,6 @@
 Cabal-Version: 2.2
 Name:           primitive
-Version:        0.7.0.0
+Version:        0.7.0.1
 License:        BSD-3-Clause
 License-File:   LICENSE
 
@@ -27,7 +27,8 @@
   GHC == 8.2.2,
   GHC == 8.4.4,
   GHC == 8.6.5,
-  GHC == 8.8.1
+  GHC == 8.8.2,
+  GHC == 8.10.1
 
 Library
   Default-Language: Haskell2010
@@ -52,8 +53,8 @@
         Data.Primitive.Internal.Compat
         Data.Primitive.Internal.Operations
 
-  Build-Depends: base >= 4.5 && < 4.14
-               , ghc-prim >= 0.2 && < 0.6
+  Build-Depends: base >= 4.5 && < 4.15
+               , ghc-prim >= 0.2 && < 0.7
                , transformers >= 0.2 && < 0.6
   if !impl(ghc >= 8.0)
     Build-Depends: fail == 4.9.*
