diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
+# 1.0.2.0
+
+* Support sized primitive types in GHC 9.2 ([#16](https://github.com/haskell/base16-bytestring/pull/16) - thanks Bodigrim!)
+
 # 1.0.1.0
 
-* Backwards-compatible support for `bytestring ^>= 0.11` ([#15](https://github.com/haskell/base16-bytestring/pull/15)) 
+* Backwards-compatible support for `bytestring ^>= 0.11` ([#15](https://github.com/haskell/base16-bytestring/pull/15))
 
 # 1.0.0.0
 
diff --git a/Data/ByteString/Base16/Internal.hs b/Data/ByteString/Base16/Internal.hs
--- a/Data/ByteString/Base16/Internal.hs
+++ b/Data/ByteString/Base16/Internal.hs
@@ -10,13 +10,12 @@
 , c2w
 , aix
 , reChunk
-, unsafeShiftR
 , withBS
 , mkBS
 ) where
 
 
-import Data.Bits ((.&.), (.|.))
+import Data.Bits ((.&.), (.|.), unsafeShiftR)
 import qualified Data.ByteString as B
 import Data.ByteString.Internal (ByteString(..))
 import Data.Char (ord)
@@ -26,7 +25,7 @@
 import Foreign.Storable (Storable(poke, peek))
 
 import GHC.Word (Word8(..))
-import GHC.Exts (Int(I#), Addr#, indexWord8OffAddr#, word2Int#, uncheckedShiftRL#)
+import GHC.Exts (Int(I#), Addr#, indexWord8OffAddr#)
 
 #if __GLASGOW_HASKELL__ >= 702
 import System.IO.Unsafe (unsafeDupablePerformIO)
@@ -135,7 +134,9 @@
 -- Utils
 
 aix :: Word8 -> Addr# -> Word8
-aix (W8# w) table = W8# (indexWord8OffAddr# table (word2Int# w))
+aix w table = W8# (indexWord8OffAddr# table i)
+  where
+    !(I# i) = fromIntegral w
 {-# INLINE aix #-}
 
 -- | Form a list of chunks, and rechunk the list of bytestrings
@@ -156,10 +157,6 @@
             let as' = if B.null y then as else y:as
             in q' : reChunk as'
           else cont_ q' as
-
-unsafeShiftR :: Word8 -> Int -> Word8
-unsafeShiftR (W8# x#) (I# i#) = W8# (x# `uncheckedShiftRL#` i#)
-{-# INLINE unsafeShiftR #-}
 
 c2w :: Char -> Word8
 c2w = fromIntegral . ord
diff --git a/base16-bytestring.cabal b/base16-bytestring.cabal
--- a/base16-bytestring.cabal
+++ b/base16-bytestring.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.12
 name:               base16-bytestring
-version:            1.0.1.0
+version:            1.0.2.0
 synopsis:           RFC 4648-compliant Base16 encodings for ByteStrings
 description:
   This package provides support for encoding and decoding binary data according
@@ -31,20 +31,13 @@
   CHANGELOG.md
 
 tested-with:
-  GHC ==7.0.4
-   || ==7.2.2
-   || ==7.4.2
-   || ==7.6.3
-   || ==7.8.4
-   || ==7.10.3
-   || ==8.0.2
+  GHC ==8.0.2
    || ==8.2.2
    || ==8.4.4
    || ==8.6.5
-   || ==8.8.3
    || ==8.8.4
-   || ==8.10.1
-   || ==8.10.2
+   || ==8.10.4
+   || ==9.0.1
 
 source-repository head
   type:     git
@@ -57,7 +50,7 @@
     Data.ByteString.Base16.Lazy
 
   build-depends:
-      base        >=4   && <5
+      base        >=4.9 && <5
     , bytestring  >=0.9 && <0.12
 
   ghc-options:      -Wall -funbox-strict-fields
