diff --git a/bench/Main.hs b/bench/Main.hs
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -9,6 +9,8 @@
 
 import qualified Data.Vector.Storable as DVS
 
+{- HLINT ignore "Monoid law, left identity" -}
+
 mkVector :: (Num w, DVS.Storable w) => w -> IO (DVS.Vector w)
 mkVector w = return $ DVS.unfoldrN 1024 gen w
   where gen b = let a = b + 1 in Just (a, a)
diff --git a/bits-extra.cabal b/bits-extra.cabal
--- a/bits-extra.cabal
+++ b/bits-extra.cabal
@@ -1,7 +1,7 @@
 cabal-version: 2.2
 
 name:                   bits-extra
-version:                0.0.2.0
+version:                0.0.2.1
 synopsis:               Useful bitwise operations
 description:            Please see the README on Github at <https://github.com/haskell-works/bits-extra#readme>
 category:               Data, Bit
@@ -9,10 +9,10 @@
 bug-reports:            https://github.com/haskell-works/bits-extra/issues
 author:                 John Ky
 maintainer:             newhoggy@gmail.com
-copyright:              2018-2020 John Ky
+copyright:              2018-2021 John Ky
 license:                BSD-3-Clause
 license-file:           LICENSE
-tested-with:            GHC == 8.10.1, GHC == 8.8.3, GHC == 8.6.5, GHC == 8.4.4
+tested-with:            GHC == 9.2.2, GHC == 9.0.1, GHC == 8.10.7, GHC == 8.8.4, GHC == 8.6.5
 build-type:             Simple
 extra-source-files:     ChangeLog.md
                         README.md
@@ -29,11 +29,11 @@
 common base                       { build-depends: base                       >= 4.11       && < 5      }
 
 common criterion                  { build-depends: criterion                  >= 1.3        && < 1.6    }
-common doctest                    { build-depends: doctest                    >= 0.16.2     && < 0.17   }
+common doctest                    { build-depends: doctest                    >= 0.16.2     && < 0.21   }
 common doctest-discover           { build-depends: doctest-discover           >= 0.2        && < 0.3    }
-common ghc-prim                   { build-depends: ghc-prim                   >= 0.5        && < 0.7    }
-common hedgehog                   { build-depends: hedgehog                   >= 0.5.3      && < 1.1    }
-common hspec                      { build-depends: hspec                      >= 2.4        && < 2.8    }
+common ghc-prim                   { build-depends: ghc-prim                   >= 0.5        && < 0.9    }
+common hedgehog                   { build-depends: hedgehog                   >= 0.5.3      && < 1.2    }
+common hspec                      { build-depends: hspec                      >= 2.4        && < 2.10    }
 common hw-hedgehog                { build-depends: hw-hedgehog                >= 0.1        && < 0.2    }
 common hw-hspec-hedgehog          { build-depends: hw-hspec-hedgehog          >= 0.1        && < 0.2    }
 common vector                     { build-depends: vector                     >= 0.12       && < 0.13   }
@@ -95,14 +95,14 @@
   ghc-options:          -O2
   build-depends:        bits-extra
 
-test-suite hw-json-doctest
+test-suite doctest
   import:               base, config
                       , doctest
                       , doctest-discover
                       , bits-extra
   default-language:     Haskell2010
   type:                 exitcode-stdio-1.0
-  ghc-options:          -threaded
+  ghc-options:          -threaded -rtsopts -with-rtsopts=-N
   main-is:              DoctestDriver.hs
   HS-Source-Dirs:       doctest
   build-tool-depends:   doctest-discover:doctest-discover
diff --git a/src/Data/Bits/Pdep/Prim.hs b/src/Data/Bits/Pdep/Prim.hs
--- a/src/Data/Bits/Pdep/Prim.hs
+++ b/src/Data/Bits/Pdep/Prim.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE CPP       #-}
-{-# LANGUAGE MagicHash #-}
 
 {-|
 Module      : Data.Bits.Pdep.Prim
diff --git a/src/Data/Bits/Pdep/Slow.hs b/src/Data/Bits/Pdep/Slow.hs
--- a/src/Data/Bits/Pdep/Slow.hs
+++ b/src/Data/Bits/Pdep/Slow.hs
@@ -33,7 +33,7 @@
   then slowPdep64' newResult (src `shiftR` 1) (mask .&. complement lowest)
   else result
   where lowest    = (-mask) .&. mask
-        newResult = (result .|. ((lsb src) .&. lowest))
+        newResult = result .|. (lsb src .&. lowest)
 
 -- | Bitwise parallel deposit (emulated).  Deposits bits from the source at the
 -- locations described by the mask.
diff --git a/src/Data/Bits/Pext.hs b/src/Data/Bits/Pext.hs
--- a/src/Data/Bits/Pext.hs
+++ b/src/Data/Bits/Pext.hs
@@ -1,5 +1,4 @@
-{-# LANGUAGE CPP       #-}
-{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE CPP #-}
 
 {-|
 Module      : Data.Bits.Pext.Prim
diff --git a/src/Data/Bits/Pext/Prim.hs b/src/Data/Bits/Pext/Prim.hs
--- a/src/Data/Bits/Pext/Prim.hs
+++ b/src/Data/Bits/Pext/Prim.hs
@@ -1,5 +1,4 @@
 {-# LANGUAGE CPP       #-}
-{-# LANGUAGE MagicHash #-}
 
 {-|
 Module      : Data.Bits.Pext.Prim
diff --git a/test/Data/Bits/PdepSpec.hs b/test/Data/Bits/PdepSpec.hs
--- a/test/Data/Bits/PdepSpec.hs
+++ b/test/Data/Bits/PdepSpec.hs
@@ -10,9 +10,9 @@
 import qualified Hedgehog.Gen   as G
 import qualified Hedgehog.Range as R
 
-{-# ANN module ("HLint: ignore Redundant do"        :: String) #-}
-{-# ANN module ("HLint: ignore Reduce duplication"  :: String) #-}
-{-# ANN module ("HLint: ignore Redundant bracket"   :: String) #-}
+{- HLINT ignore "Redundant do"        -}
+{- HLINT ignore "Reduce duplication"  -}
+{- HLINT ignore "Redundant bracket"   -}
 
 spec :: Spec
 spec = describe "Data.Bits.PdepSpec" $ do
diff --git a/test/Data/Bits/PextSpec.hs b/test/Data/Bits/PextSpec.hs
--- a/test/Data/Bits/PextSpec.hs
+++ b/test/Data/Bits/PextSpec.hs
@@ -9,9 +9,9 @@
 import qualified Hedgehog.Gen   as G
 import qualified Hedgehog.Range as R
 
-{-# ANN module ("HLint: ignore Redundant do"        :: String) #-}
-{-# ANN module ("HLint: ignore Reduce duplication"  :: String) #-}
-{-# ANN module ("HLint: ignore Redundant bracket"   :: String) #-}
+{- HLINT ignore "Redundant do"        -}
+{- HLINT ignore "Reduce duplication"  -}
+{- HLINT ignore "Redundant bracket"   -}
 
 spec :: Spec
 spec = describe "Data.Bits.PextSpec" $ do
