diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,10 @@
 # Changelog for sandwich
 
-## Unreleased
+## Unreleased changes
+
+## 0.1.5.0
+
+* GHC 9.6 support
 
 ## 0.1.4.0
 
diff --git a/sandwich.cabal b/sandwich.cabal
--- a/sandwich.cabal
+++ b/sandwich.cabal
@@ -1,11 +1,11 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.35.1.
+-- This file has been generated from package.yaml by hpack version 0.35.2.
 --
 -- see: https://github.com/sol/hpack
 
 name:           sandwich
-version:        0.1.4.0
+version:        0.1.5.0
 synopsis:       Yet another test framework for Haskell
 description:    Please see the <https://codedownio.github.io/sandwich documentation>.
 category:       Testing
diff --git a/src/Test/Sandwich/Formatters/Print/Common.hs b/src/Test/Sandwich/Formatters/Print/Common.hs
--- a/src/Test/Sandwich/Formatters/Print/Common.hs
+++ b/src/Test/Sandwich/Formatters/Print/Common.hs
@@ -12,6 +12,10 @@
 import Test.Sandwich.Types.RunTree
 import Test.Sandwich.Types.Spec
 
+#if MIN_VERSION_mtl(2,3,0)
+import Control.Monad
+#endif
+
 
 finishPrinting :: RunNodeCommon -> Result -> ReaderT (PrintFormatter, Int, Handle) IO ()
 finishPrinting (RunNodeCommonWithStatus {..}) result = do
diff --git a/src/Test/Sandwich/Formatters/Print/FailureReason.hs b/src/Test/Sandwich/Formatters/Print/FailureReason.hs
--- a/src/Test/Sandwich/Formatters/Print/FailureReason.hs
+++ b/src/Test/Sandwich/Formatters/Print/FailureReason.hs
@@ -20,6 +20,10 @@
 import Test.Sandwich.Types.Spec
 import Text.Show.Pretty as P
 
+#if MIN_VERSION_mtl(2,3,0)
+import Control.Monad
+#endif
+
 
 printFailureReason :: FailureReason -> ReaderT (PrintFormatter, Int, Handle) IO ()
 printFailureReason (Reason _ s) = do
diff --git a/src/Test/Sandwich/Formatters/Print/Logs.hs b/src/Test/Sandwich/Formatters/Print/Logs.hs
--- a/src/Test/Sandwich/Formatters/Print/Logs.hs
+++ b/src/Test/Sandwich/Formatters/Print/Logs.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 
 module Test.Sandwich.Formatters.Print.Logs where
 
@@ -12,6 +13,10 @@
 import Test.Sandwich.Formatters.Print.Types
 import Test.Sandwich.Formatters.Print.Util
 import Test.Sandwich.Types.RunTree
+
+#if MIN_VERSION_mtl(2,3,0)
+import Control.Monad
+#endif
 
 
 printLogs :: (MonadIO m, MonadReader (PrintFormatter, Int, Handle) m, Foldable t) => TVar (t LogEntry) -> m ()
diff --git a/src/Test/Sandwich/Types/Spec.hs b/src/Test/Sandwich/Types/Spec.hs
--- a/src/Test/Sandwich/Types/Spec.hs
+++ b/src/Test/Sandwich/Types/Spec.hs
@@ -20,7 +20,6 @@
 import Control.Applicative
 import Control.Exception.Safe
 import Control.Monad.Base
-import Control.Monad.Except
 import Control.Monad.Free
 import Control.Monad.Free.TH
 import Control.Monad.IO.Unlift
@@ -28,6 +27,7 @@
 import Control.Monad.Reader
 import Control.Monad.Trans.Control
 import Data.Functor.Classes
+import Data.Kind (Type)
 import Data.Maybe
 import Data.String.Interpolate
 import GHC.Stack
@@ -149,7 +149,7 @@
 
 -- * Free monad language
 
-data (a :: *) :> (b :: *) = a :> b
+data (a :: Type) :> (b :: Type) = a :> b
   deriving Show
 infixr :>
 
