diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,11 +1,22 @@
 # Changelog
 
-`lua-arbitrary` uses [PVP Versioning][1].
+`lua-arbitrary` uses [PVP Versioning][].
 
-[1]: https://pvp.haskell.org
+## lua-arbitrary-1.0.1
 
-## lua-arbitrary 1.0.0
+Released 2022-02-19.
 
-Release pending.
+-   Allow lua-2.2.0 (includes Lua 5.4).
 
+-   Implemented `shrink` for Lua integers and numbers.
+
+-   Explicitly disable shrinking for TypeCode, StatusCode, and
+    OPCode.
+
+## lua-arbitrary-1.0.0
+
+Released 29-01-2022.
+
 Extracted from hslua-1.3.0.
+
+  [PVP Versioning]: https://pvp.haskell.org
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,7 +1,7 @@
 Copyright © 1994-2020 Lua.org, PUC-Rio.
 Copyright © 2007-2012 Gracjan Polak
 Copyright © 2012-2015 Ömer Sinan Ağacan
-Copyright © 2016-2021 Albert Krewinkel
+Copyright © 2016-2022 Albert Krewinkel
 
 Permission is hereby granted, free of charge, to any person obtaining a
 copy of this software and associated documentation files (the
diff --git a/lua-arbitrary.cabal b/lua-arbitrary.cabal
--- a/lua-arbitrary.cabal
+++ b/lua-arbitrary.cabal
@@ -1,6 +1,6 @@
 cabal-version:       2.2
 name:                lua-arbitrary
-version:             1.0.0
+version:             1.0.1
 synopsis:            Arbitrary instances for Lua types.
 description:         Provides instances for QuickCheck's \"Arbitrary\"
                      typeclass.
@@ -12,7 +12,7 @@
 maintainer:          albert+hslua@zeitkraut.de
 copyright:           © 2007–2012 Gracjan Polak;
                      © 2012–2016 Ömer Sinan Ağacan;
-                     © 2017-2021 Albert Krewinkel
+                     © 2017-2022 Albert Krewinkel
 category:            Foreign
 build-type:          Simple
 extra-source-files:  README.md
@@ -22,8 +22,9 @@
                    , GHC == 8.4.4
                    , GHC == 8.6.5
                    , GHC == 8.8.4
-                   , GHC == 8.10.4
+                   , GHC == 8.10.7
                    , GHC == 9.0.1
+                   , GHC == 9.2.1
 
 source-repository head
   type:                git
@@ -32,7 +33,7 @@
 common common-options
   default-language:    Haskell2010
   build-depends:       base          >= 4.8    && < 5
-                     , lua           >= 2.0    && < 2.1
+                     , lua           >= 2.0    && < 2.3
                      , QuickCheck    >= 2.7    && < 3
   ghc-options:         -Wall
                        -Wincomplete-record-updates
diff --git a/src/Lua/Arbitrary.hs b/src/Lua/Arbitrary.hs
--- a/src/Lua/Arbitrary.hs
+++ b/src/Lua/Arbitrary.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# OPTIONS_GHC -fno-warn-orphans #-}
 {-| Instances for QuickCheck's Arbitrary. -}
 module Lua.Arbitrary () where
@@ -7,9 +8,11 @@
 
 instance Arbitrary Lua.Integer where
   arbitrary = arbitrarySizedIntegral
+  shrink = shrinkIntegral
 
 instance Arbitrary Lua.Number where
   arbitrary = Lua.Number <$> arbitrary
+  shrink = shrinkRealFrac
 
 instance Arbitrary Lua.TypeCode where
   arbitrary = elements
@@ -24,6 +27,7 @@
     , LUA_TUSERDATA
     , LUA_TTHREAD
     ]
+  shrink = shrinkNothing
 
 instance Arbitrary Lua.StatusCode where
   arbitrary = elements
@@ -32,10 +36,13 @@
     , LUA_ERRRUN
     , LUA_ERRSYNTAX
     , LUA_ERRMEM
+#if !MIN_VERSION_lua(2,2,0)
     , LUA_ERRGCMM
+#endif
     , LUA_ERRERR
     , LUA_ERRFILE
     ]
+  shrink = shrinkNothing
 
 instance Arbitrary Lua.OPCode where
   arbitrary = elements
@@ -43,3 +50,4 @@
     , LUA_OPLT
     , LUA_OPLE
     ]
+  shrink = shrinkNothing
