diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,10 @@
 
 ## Unreleased changes
 
+## 0.1.2.0
+
+* GHC 9.6 support
+
 ## 0.1.1.0
 
 * Windows support.
diff --git a/LICENSE b/LICENSE
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright Tom McLaughlin (c) 2022
+Copyright Tom McLaughlin (c) 2023
 
 All rights reserved.
 
diff --git a/sandwich-slack.cabal b/sandwich-slack.cabal
--- a/sandwich-slack.cabal
+++ b/sandwich-slack.cabal
@@ -1,13 +1,13 @@
 cabal-version: 1.12
 
--- This file has been generated from package.yaml by hpack version 0.34.4.
+-- This file has been generated from package.yaml by hpack version 0.35.2.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 422cdfb1fbcf3689b33a4017ebe648ea8705988b81842a18176a442681037e9d
+-- hash: 6138f55d728f79ee3b7afe065d16ee37a3b075445596cb82a236df8f0e23bf47
 
 name:           sandwich-slack
-version:        0.1.1.0
+version:        0.1.2.0
 synopsis:       Sandwich integration with Slack
 description:    Please see the <https://codedownio.github.io/sandwich/docs/extensions/sandwich-slack documentation>.
 category:       Testing
@@ -15,7 +15,7 @@
 bug-reports:    https://github.com/codedownio/sandwich/issues
 author:         Tom McLaughlin
 maintainer:     tom@codedown.io
-copyright:      2022 Tom McLaughlin
+copyright:      2023 Tom McLaughlin
 license:        BSD3
 license-file:   LICENSE
 build-type:     Simple
@@ -38,6 +38,17 @@
       Paths_sandwich_slack
   hs-source-dirs:
       src
+  default-extensions:
+      FlexibleContexts
+      FlexibleInstances
+      LambdaCase
+      MultiWayIf
+      NamedFieldPuns
+      OverloadedStrings
+      QuasiQuotes
+      RecordWildCards
+      ScopedTypeVariables
+      ViewPatterns
   ghc-options: -W
   build-depends:
       aeson
@@ -65,6 +76,17 @@
       Paths_sandwich_slack
   hs-source-dirs:
       app
+  default-extensions:
+      FlexibleContexts
+      FlexibleInstances
+      LambdaCase
+      MultiWayIf
+      NamedFieldPuns
+      OverloadedStrings
+      QuasiQuotes
+      RecordWildCards
+      ScopedTypeVariables
+      ViewPatterns
   ghc-options: -threaded -rtsopts -with-rtsopts=-N
   build-depends:
       aeson
@@ -94,6 +116,17 @@
       Paths_sandwich_slack
   hs-source-dirs:
       test
+  default-extensions:
+      FlexibleContexts
+      FlexibleInstances
+      LambdaCase
+      MultiWayIf
+      NamedFieldPuns
+      OverloadedStrings
+      QuasiQuotes
+      RecordWildCards
+      ScopedTypeVariables
+      ViewPatterns
   ghc-options: -threaded -rtsopts -with-rtsopts=-N
   build-depends:
       aeson
diff --git a/src/Test/Sandwich/Formatters/Slack.hs b/src/Test/Sandwich/Formatters/Slack.hs
--- a/src/Test/Sandwich/Formatters/Slack.hs
+++ b/src/Test/Sandwich/Formatters/Slack.hs
@@ -1,11 +1,4 @@
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE MultiWayIf #-}
-{-# LANGUAGE QuasiQuotes #-}
 {-# LANGUAGE OverloadedLists #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE ViewPatterns #-}
-{-# LANGUAGE FlexibleContexts #-}
 
 -- | The Slack formatter shows live-updating test progress and failures by sending messages to a Slack channel.
 --
diff --git a/src/Test/Sandwich/Formatters/Slack/Internal/Core.hs b/src/Test/Sandwich/Formatters/Slack/Internal/Core.hs
--- a/src/Test/Sandwich/Formatters/Slack/Internal/Core.hs
+++ b/src/Test/Sandwich/Formatters/Slack/Internal/Core.hs
@@ -1,6 +1,4 @@
-{-# LANGUAGE FlexibleContexts #-}
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE CPP #-}
 
 module Test.Sandwich.Formatters.Slack.Internal.Core where
 
@@ -15,6 +13,12 @@
 import qualified Data.Vector as V
 import qualified Network.Wreq as W
 import Test.Sandwich.Formatters.Slack.Internal.Types
+
+#if MIN_VERSION_mtl(2,3,0)
+import Control.Monad
+import Control.Monad.IO.Class
+#endif
+
 
 postMessage :: (MonadError T.Text m, MonadIO m) => SlackConfig -> ChannelName -> T.Text -> [A.Value] -> Maybe [A.Value] -> m Value
 postMessage conf cid msg as maybeBlocks =
diff --git a/src/Test/Sandwich/Formatters/Slack/Internal/Markdown.hs b/src/Test/Sandwich/Formatters/Slack/Internal/Markdown.hs
--- a/src/Test/Sandwich/Formatters/Slack/Internal/Markdown.hs
+++ b/src/Test/Sandwich/Formatters/Slack/Internal/Markdown.hs
@@ -1,7 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE QuasiQuotes #-}
-{-# LANGUAGE RecordWildCards #-}
-{-# LANGUAGE ViewPatterns #-}
 {-# LANGUAGE CPP #-}
 
 module Test.Sandwich.Formatters.Slack.Internal.Markdown where
diff --git a/src/Test/Sandwich/Formatters/Slack/Internal/ProgressBar.hs b/src/Test/Sandwich/Formatters/Slack/Internal/ProgressBar.hs
--- a/src/Test/Sandwich/Formatters/Slack/Internal/ProgressBar.hs
+++ b/src/Test/Sandwich/Formatters/Slack/Internal/ProgressBar.hs
@@ -1,7 +1,3 @@
-{-# LANGUAGE LambdaCase #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE QuasiQuotes #-}
-{-# LANGUAGE RecordWildCards #-}
 
 module Test.Sandwich.Formatters.Slack.Internal.ProgressBar where
 
diff --git a/src/Test/Sandwich/Formatters/Slack/Internal/Types.hs b/src/Test/Sandwich/Formatters/Slack/Internal/Types.hs
--- a/src/Test/Sandwich/Formatters/Slack/Internal/Types.hs
+++ b/src/Test/Sandwich/Formatters/Slack/Internal/Types.hs
@@ -1,5 +1,3 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE RecordWildCards #-}
 
 module Test.Sandwich.Formatters.Slack.Internal.Types where
 
