diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,5 @@
+# Revision history for word-compat
+
+## 0.1.0.0 -- YYYY-mm-dd
+
+* First version. Released on an unsuspecting world.
diff --git a/src/GHC/Int/Compat.hs b/src/GHC/Int/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/GHC/Int/Compat.hs
@@ -0,0 +1,45 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE ViewPatterns #-}
+{-# LANGUAGE CPP #-}
+module GHC.Int.Compat (Int8, pattern GHC.Int.Compat.I8#,
+    Int16, pattern GHC.Int.Compat.I16#,
+    Int32, pattern GHC.Int.Compat.I32#,
+    Int64(..),
+    Int(..),
+
+    uncheckedIShiftL64#, uncheckedIShiftRA64#,
+    -- * Equality operators
+    -- | See GHC.Classes#matching_overloaded_methods_in_rules
+    eqInt, neInt, gtInt, geInt, ltInt, leInt,
+    eqInt8, neInt8, gtInt8, geInt8, ltInt8, leInt8,
+    eqInt16, neInt16, gtInt16, geInt16, ltInt16, leInt16,
+    eqInt32, neInt32, gtInt32, geInt32, ltInt32, leInt32,
+    eqInt64, neInt64, gtInt64, geInt64, ltInt64, leInt64) where
+
+import GHC.Prim
+import GHC.Int as W
+
+pattern I8# :: Int# -> Int8
+#if MIN_VERSION_ghc_prim(0,8,0)
+pattern I8# x <- (W.I8# (int8ToInt# -> x)) where
+  I8# x = W.I8# (intToInt8# x)
+#else
+pattern I8# = I8#
+#endif
+
+pattern I16# :: Int# -> Int16
+#if MIN_VERSION_ghc_prim(0,8,0)
+pattern I16# x <- (W.I16# (int16ToInt# -> x)) where
+  I16# x = W.I16# (intToInt16# x)
+#else
+pattern I16# = I16#
+#endif
+
+pattern I32# :: Int# -> Int32
+#if MIN_VERSION_ghc_prim(0,8,0)
+pattern I32# x <- (W.I32# (int32ToInt# -> x)) where
+  I32# x = W.I32# (intToInt32# x)
+#else
+pattern I32# = I32#
+#endif
diff --git a/src/GHC/Word/Compat.hs b/src/GHC/Word/Compat.hs
new file mode 100644
--- /dev/null
+++ b/src/GHC/Word/Compat.hs
@@ -0,0 +1,59 @@
+{-# LANGUAGE PatternSynonyms #-}
+{-# LANGUAGE MagicHash #-}
+{-# LANGUAGE ViewPatterns #-}
+{-# LANGUAGE CPP #-}
+module GHC.Word.Compat (Word8, pattern GHC.Word.Compat.W8#,
+    Word16, pattern GHC.Word.Compat.W16#,
+    Word32, pattern GHC.Word.Compat.W32#,
+    Word64(..),
+    Word(..),
+    
+        -- * Shifts
+    uncheckedShiftL64#,
+    uncheckedShiftRL64#,
+
+    -- * Byte swapping
+    byteSwap16,
+    byteSwap32,
+    byteSwap64,
+
+    -- * Bit reversal
+    bitReverse8,
+    bitReverse16,
+    bitReverse32,
+    bitReverse64,
+
+    -- * Equality operators
+    -- | See GHC.Classes#matching_overloaded_methods_in_rules
+    eqWord, neWord, gtWord, geWord, ltWord, leWord,
+    eqWord8, neWord8, gtWord8, geWord8, ltWord8, leWord8,
+    eqWord16, neWord16, gtWord16, geWord16, ltWord16, leWord16,
+    eqWord32, neWord32, gtWord32, geWord32, ltWord32, leWord32,
+    eqWord64, neWord64, gtWord64, geWord64, ltWord64, leWord64) where
+
+import GHC.Prim
+import GHC.Word as W
+
+pattern W8# :: Word# -> Word8
+#if MIN_VERSION_ghc_prim(0,8,0)
+pattern W8# x <- (W.W8# (word8ToWord# -> x)) where
+  W8# x = W.W8# (wordToWord8# x)
+#else
+pattern W8# = W8#
+#endif
+
+pattern W16# :: Word# -> Word16
+#if MIN_VERSION_ghc_prim(0,8,0)
+pattern W16# x <- (W.W16# (word16ToWord# -> x)) where
+  W16# x = W.W16# (wordToWord16# x)
+#else
+pattern W16# = W16#
+#endif
+
+pattern W32# :: Word# -> Word32
+#if MIN_VERSION_ghc_prim(0,8,0)
+pattern W32# x <- (W.W32# (word32ToWord# -> x)) where
+  W32# x = W.W32# (wordToWord32# x)
+#else
+pattern W32# = W32#
+#endif
diff --git a/word-compat.cabal b/word-compat.cabal
new file mode 100644
--- /dev/null
+++ b/word-compat.cabal
@@ -0,0 +1,41 @@
+cabal-version:      2.4
+name:               word-compat
+version:            0.0
+
+-- A short (one-line) description of the package.
+synopsis: Compatibility shim for the Int/Word internal change in GHC 9.2
+
+-- A longer description of the package.
+description: This package offers a workaround for the breaking change in Word/Int. Import GHC.Word.Compat in place of GHC.Word to take effect.
+
+-- A URL where users can report bugs.
+-- bug-reports:
+
+-- The license under which the package is released.
+license:            BSD-3-Clause
+author:             Fumiaki Kinoshita
+maintainer:         fumiexcel@gmail.com
+
+-- A copyright notice.
+copyright: Copyright (c) 2022 Fumiaki Kinoshita
+category: Data
+extra-source-files: CHANGELOG.md
+
+source-repository head
+  type: git
+  location: git@github.com:fumieval/word-compat
+
+library
+    exposed-modules:
+        GHC.Word.Compat
+        GHC.Int.Compat
+
+    -- Modules included in this executable, other than Main.
+    -- other-modules:
+
+    -- LANGUAGE extensions used by modules in this package.
+    -- other-extensions:
+    build-depends:    base >= 4.10 && <5, ghc-prim
+    hs-source-dirs:   src
+    ghc-options: -Wall -Wcompat
+    default-language: Haskell2010
