diff --git a/numhask-prelude.cabal b/numhask-prelude.cabal
--- a/numhask-prelude.cabal
+++ b/numhask-prelude.cabal
@@ -1,5 +1,6 @@
+cabal-version: 3.0
 name: numhask-prelude
-version: 0.3.3
+version: 0.4.0
 synopsis:
   A numeric prelude
 description:
@@ -17,13 +18,11 @@
 copyright:
   Tony Day
 license:
-  BSD3
+  BSD-3-Clause
 license-file:
   LICENSE
 build-type:
   Simple
-cabal-version:
-  1.18
 source-repository head
   type:
     git
@@ -48,7 +47,7 @@
   build-depends:
       base >=4.7 && <5
     , numhask >=0.3 && <0.5
-    , protolude >=0.1 && <0.3
+    , protolude >=0.3 && <0.4
   exposed-modules:
     NumHask.Prelude
     NumHask.Error
@@ -68,5 +67,5 @@
     UnicodeSyntax
   build-depends:
       doctest >=0.13 && <0.17
-    , numhask-prelude >=0.3 && <0.4
+    , numhask-prelude >=0.4 && <0.5
   default-language: Haskell2010
diff --git a/src/NumHask/Error.hs b/src/NumHask/Error.hs
--- a/src/NumHask/Error.hs
+++ b/src/NumHask/Error.hs
@@ -3,7 +3,6 @@
 module NumHask.Error where
 
 import Protolude
-import Protolude.Panic (panic)
 
 impossible :: HasCallStack => Text -> a
 impossible = panic
diff --git a/src/NumHask/Prelude.hs b/src/NumHask/Prelude.hs
--- a/src/NumHask/Prelude.hs
+++ b/src/NumHask/Prelude.hs
@@ -39,7 +39,7 @@
   ) where
  
 #if MIN_VERSION_base(4,11,0)
-import Protolude hiding (Integral(..), Rep, Semiring(..), (*), (**), (+), (-), (/), (^), (^^), abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceiling, cos, cosh, exp, floor, fromInteger, fromIntegral, even, odd, infinity, log, logBase, negate, pi, product, properFraction, recip, round, sin, sinh, sqrt, sum, tan, tanh, toInteger, trans, truncate, zero, fromRational, Ratio(..), reduce, gcd, subtract, Complex(..), Sum(..), Product(..), realPart, imagPart, polar, phase, mkPolar, magnitude, cis, toRational)
+import Protolude hiding (Integral(..), Rep, Semiring(..), (*), (**), (+), (-), (/), (^), (^^), abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceiling, cos, cosh, exp, floor, fromInteger, fromIntegral, even, odd, infinity, log, logBase, negate, pi, product, properFraction, recip, round, sin, sinh, sqrt, sum, tan, tanh, toInteger, trans, truncate, zero, fromRational, Ratio, reduce, gcd, subtract, Complex(..), Sum(..), Product(..), realPart, imagPart, polar, phase, mkPolar, magnitude, cis, toRational)
 #else
 import Protolude hiding (Integral(..), Rep, Semiring(..), (*), (**), (+), (-), (/), (^), (^^), abs, acos, acosh, asin, asinh, atan, atan2, atanh, ceiling, cos, cosh, exp, floor, fromInteger, fromIntegral, even, odd, infinity, log, logBase, negate, pi, product, properFraction, recip, round, sin, sinh, sqrt, sum, tan, tanh, toInteger, trans, truncate, zero, fromRational, Ratio(..), reduce, gcd, subtract, Complex(..), Sum(..), Product(..), realPart, imagPart, polar, phase, mkPolar, magnitude, cis, toRational, (<>), Semigroup)
 import Data.Semigroup ((<>), Semigroup)
