diff --git a/monad-effect.cabal b/monad-effect.cabal
--- a/monad-effect.cabal
+++ b/monad-effect.cabal
@@ -7,7 +7,7 @@
 -- PVP summary:     +-+------- breaking API changes
 --                  | | +----- non-breaking API additions
 --                  | | | +--- code changes with no API change
-version:            0.2.3.0
+version:            0.2.3.1
 
 -- A short (one-line) description of the package.
 synopsis:  A fast and lightweight effect system.
@@ -42,6 +42,9 @@
 -- Extra source files to be distributed with the package, such as examples, or a tutorial module.
 -- extra-source-files:
 
+tested-with: GHC == 9.12.2
+           , GHC == 9.6.7
+
 source-repository head
   type: git
   location: https://github.com/Eiko-Tokura/monad-effect.git
@@ -132,6 +135,7 @@
                       , TypeFamilies
                       , TypeApplications
                       , TemplateHaskell
+                      , CPP
 test-suite monad-effect-test
     -- Import common warning flags.
     import:           warnings
diff --git a/src/Control/Monad/Class/Except.hs b/src/Control/Monad/Class/Except.hs
--- a/src/Control/Monad/Class/Except.hs
+++ b/src/Control/Monad/Class/Except.hs
@@ -1,3 +1,4 @@
+{-# LANGUAGE CPP #-}
 module Control.Monad.Class.Except where
 
 import Control.Exception as E
@@ -66,8 +67,17 @@
 instance {-# OVERLAPPING #-} MonadExcept SomeException IO where
   throwExcept = throwIO
 
+-- Added in 0.2.3.1
+-- to make things compile ghc < 9.8.1
+#if __GLASGOW_HASKELL__ >= 910
+#define WARN_ONLY_910(cat,msg) {-# WARNING in cat msg #-}
+#else
+#define WARN_ONLY_910(cat,msg)
+#endif
+
 -- | @since 0.2.2.0
-instance {-# WARNING in "x-monad-except-io" "Exception thrown into IO here, remember to deal with it. Use explicit algebraic errors wherever possible or disable the warning (per file or per project) with -Wno-x-monad-except-io." #-} Exception e => MonadExcept e IO where
+instance WARN_ONLY_910("x-monad-except-io", "Exception thrown into IO here, remember to deal with it. Use explicit algebraic errors wherever possible or disable the warning (per file or per project) with -Wno-x-monad-except-io.")
+  Exception e => MonadExcept e IO where
   throwExcept = throwIO
 
 -- | @since 0.2.2.0
diff --git a/src/Data/TypeList/FData/TH.hs b/src/Data/TypeList/FData/TH.hs
--- a/src/Data/TypeList/FData/TH.hs
+++ b/src/Data/TypeList/FData/TH.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE AllowAmbiguousTypes, ViewPatterns #-}
+{-# OPTIONS_GHC -Wno-unused-imports #-}
 -- | This module provides Template Haskell utilities for generating instances of FData, including
 -- FDataByIndex, UnConsFData, ConsFData0, ConsFData1, and RemoveElem.
 --
@@ -9,6 +10,8 @@
 import Language.Haskell.TH.Syntax hiding (Type)
 import qualified Language.Haskell.TH.Syntax as TH
 import Control.Monad (when)
+import Data.Foldable (foldl')
+-- ^ This import is added because older version of prelude don't export foldl' from Prelude
 
 generateFDataInstance :: Int -> Q Dec
 generateFDataInstance n = do
