diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Unreleased next version
 
+# 0.6.0.3
+
+- Support GHC 9.0.1.
+
 # 0.6.0.2
 
 - Relax version bounds to encompass `time-0.12`.
diff --git a/nri-prelude.cabal b/nri-prelude.cabal
--- a/nri-prelude.cabal
+++ b/nri-prelude.cabal
@@ -5,9 +5,9 @@
 -- see: https://github.com/sol/hpack
 
 name:           nri-prelude
-version:        0.6.0.2
+version:        0.6.0.3
 synopsis:       A Prelude inspired by the Elm programming language
-description:    Please see the README at <https://github.com/NoRedInk/haskell-libraries/tree/trunk/nri-prelude>.
+description:    Please see the README at <https://github.com/NoRedInk/haskell-libraries/tree/trunk/nri-prelude#readme>.
 category:       Web
 homepage:       https://github.com/NoRedInk/haskell-libraries/tree/trunk/nri-prelude#readme
 bug-reports:    https://github.com/NoRedInk/haskell-libraries/issues
@@ -94,7 +94,7 @@
     , directory >=1.3.3.0 && <1.4
     , exceptions >=0.10.4 && <0.11
     , filepath >=1.4.2.1 && <1.5
-    , ghc >=8.6.1 && <8.11
+    , ghc >=8.6.1 && <9.1
     , hedgehog >=1.0.2 && <1.1
     , junit-xml >=0.1.0.0 && <0.2.0.0
     , pretty-diff >=0.4.0.2 && <0.5
@@ -185,7 +185,7 @@
     , directory >=1.3.3.0 && <1.4
     , exceptions >=0.10.4 && <0.11
     , filepath >=1.4.2.1 && <1.5
-    , ghc >=8.6.1 && <8.11
+    , ghc >=8.6.1 && <9.1
     , hedgehog >=1.0.2 && <1.1
     , junit-xml >=0.1.0.0 && <0.2.0.0
     , pretty-diff >=0.4.0.2 && <0.5
diff --git a/src/NriPrelude/Plugin.hs b/src/NriPrelude/Plugin.hs
--- a/src/NriPrelude/Plugin.hs
+++ b/src/NriPrelude/Plugin.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 {-# LANGUAGE GADTs #-}
 {-# OPTIONS_GHC -fno-warn-incomplete-record-updates #-}
 
@@ -21,7 +22,11 @@
 
 import Data.Function ((&))
 import qualified Data.List
-import qualified GhcPlugins
+#if __GLASGOW_HASKELL__ >= 900
+import qualified GHC.Plugins as GhcPlugins
+#else
+import GhcPlugins
+#endif
 import NriPrelude.Plugin.GhcVersionDependent
   ( hsmodImports,
     hsmodName,
@@ -35,6 +40,13 @@
 import qualified Set
 import Prelude
 
+-- | adds an unqualified import of the NriPrelude module, and qualified imports of
+-- other base modules such as List and Maybe.
+--
+-- To use it make sure your project has @nri-prelude@ listed as a dependency,
+-- then add the follwing ghc option to your cabal or package yaml file:
+--
+-- > -fplugin=NriPrelude.Plugin
 plugin :: GhcPlugins.Plugin
 plugin =
   GhcPlugins.defaultPlugin
diff --git a/src/Platform/Internal.hs b/src/Platform/Internal.hs
--- a/src/Platform/Internal.hs
+++ b/src/Platform/Internal.hs
@@ -762,7 +762,7 @@
 tracingSpanIO :: Stack.HasCallStack => LogHandler -> Text -> (LogHandler -> IO a) -> IO a
 tracingSpanIO handler name run =
   Exception.bracketWithError
-    (Stack.withFrozenCallStack startChildTracingSpan handler name)
+    (Stack.withFrozenCallStack (startChildTracingSpan handler name))
     (Prelude.flip finishTracingSpan)
     run
 
