diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for deriving-trans
 
+## 0.9.0.0 *05 Jul 2023*
+
+* Drop support for `GHC < 9.6`.
+
 ## 0.8.1.0 *20 Feb 2023*
 
 * Support new optional dependency logict `>= 0.8.0.0`.
diff --git a/deriving-trans.cabal b/deriving-trans.cabal
--- a/deriving-trans.cabal
+++ b/deriving-trans.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.0
 name: deriving-trans
-version: 0.8.1.0
+version: 0.9.0.0
 synopsis: Derive instances for monad transformer stacks
 description:
   Implementing instances for monad transformer stacks can be tedious.
@@ -28,7 +28,7 @@
 flag exceptions
   default: True
   description:
-    Implement instances for 'MonadThrow' and 'MonadCatch'.
+    Implement instances for exception's type classes.
 
 flag logict
   default: True
@@ -109,6 +109,7 @@
     UnboxedTuples
   ghc-options:
     -Weverything
+    -Wno-all-missed-specialisations
     -Wno-implicit-prelude
     -Wno-missing-kind-signatures
     -Wno-missing-export-lists
diff --git a/src/Control/Monad/Trans/Compose/Stack.hs b/src/Control/Monad/Trans/Compose/Stack.hs
--- a/src/Control/Monad/Trans/Compose/Stack.hs
+++ b/src/Control/Monad/Trans/Compose/Stack.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE GADTs #-}
+{-# LANGUAGE TypeData #-}
 {-# LANGUAGE TypeFamilyDependencies #-}
 {-# LANGUAGE UndecidableInstances #-}
 {-# OPTIONS -Wno-unticked-promoted-constructors #-}
@@ -71,7 +72,7 @@
 -- | A data kind representing a monad transformer stack.
 --
 -- This is basically a type-level list of monad transformers.
-data Stack where
+type data Stack where
   -- | an empty monad transformer stack
   NilT :: Stack
   -- | add a monad transformer to a stack
diff --git a/src/Control/Monad/Trans/Elevator.hs b/src/Control/Monad/Trans/Elevator.hs
--- a/src/Control/Monad/Trans/Elevator.hs
+++ b/src/Control/Monad/Trans/Elevator.hs
@@ -248,7 +248,7 @@
 -- @
 -- newtype CustomT m a = CustomT { unCustomT :: 'Control.Monad.Trans.Identity.IdentityT' m a }
 --   deriving newtype ('Functor', 'Applicative', 'Monad')
---   deriving newtype ('MonadTrans', 'MonadTransControl')
+--   deriving newtype ('MonadTrans', 'MonadTransControl', 'MonadTransControlIdentity')
 --
 -- runCustomT :: CustomT m a -> m a
 -- runCustomT = 'Control.Monad.Trans.Identity.runIdentityT' . unCustomT
