diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+1.1
+---
+* Updates for GHC 9.6 through 9.14
+
 1.0
 ---
 * improved generic implementation of `unfold`
diff --git a/src/Data/Biunfoldable.hs b/src/Data/Biunfoldable.hs
--- a/src/Data/Biunfoldable.hs
+++ b/src/Data/Biunfoldable.hs
@@ -10,7 +10,6 @@
 --
 -- Class of data structures with 2 type arguments that can be unfolded.
 -----------------------------------------------------------------------------
-{-# LANGUAGE Safe #-}
 module Data.Biunfoldable
   (
 
diff --git a/src/Data/Triunfoldable.hs b/src/Data/Triunfoldable.hs
--- a/src/Data/Triunfoldable.hs
+++ b/src/Data/Triunfoldable.hs
@@ -10,8 +10,7 @@
 --
 -- Class of data structures with 3 type arguments that can be unfolded.
 -----------------------------------------------------------------------------
-{-# LANGUAGE Safe #-}
-module Data.Triunfoldable 
+module Data.Triunfoldable
   (
 
   -- * Triunfoldable
@@ -26,7 +25,7 @@
   , randomDefault
   , arbitraryDefault
 
-  ) 
+  )
   where
 
 import Control.Applicative
@@ -97,7 +96,7 @@
 
 -- | Provides a QuickCheck generator, can be used as default instance for 'Arbitrary'.
 arbitraryDefault :: (Arbitrary a, Arbitrary b, Arbitrary c, Triunfoldable t) => Gen (t a b c)
-arbitraryDefault = let Arb _ gen = triunfold arbUnit arbUnit arbUnit in 
+arbitraryDefault = let Arb _ gen = triunfold arbUnit arbUnit arbUnit in
   fromMaybe (error "Failed to generate a value.") <$> sized (\n -> resize (n + 1) gen)
 
 
@@ -105,6 +104,6 @@
 curry3 f a b c = f (a,b,c)
 
 instance Triunfoldable (,,) where
-  triunfold fa fb fc = choose 
+  triunfold fa fb fc = choose
     [ (,,) <$> fa <*> fb <*> fc ]
 
diff --git a/src/Data/Unfoldable.hs b/src/Data/Unfoldable.hs
--- a/src/Data/Unfoldable.hs
+++ b/src/Data/Unfoldable.hs
@@ -10,10 +10,6 @@
 --
 -- Class of data structures that can be unfolded.
 -----------------------------------------------------------------------------
-{-# LANGUAGE CPP, Safe, TupleSections #-}
-#ifdef GENERICS
-{-# LANGUAGE TypeOperators, DefaultSignatures, FlexibleContexts, TypeApplications #-}
-#endif
 module Data.Unfoldable
   (
 
@@ -52,10 +48,8 @@
 import qualified Data.Sequence as S
 import qualified Data.Tree as T
 
-#ifdef GENERICS
 import GHC.Generics
 import Generics.OneLiner
-#endif
 
 -- | Data structures that can be unfolded.
 --
@@ -91,7 +85,6 @@
   -- | Given a way to generate elements, return a way to generate structures containing those elements.
   unfold :: Unfolder f => f a -> f (t a)
 
-#ifdef GENERICS
   default unfold :: (ADT1 t, Constraints1 t Unfoldable, Unfolder f) => f a -> f (t a)
   unfold = choose . getCompose . createA1 @Unfoldable (Compose . pure . unfold . asum' . getCompose) . Compose . pure
     where
@@ -99,7 +92,6 @@
       asum' [a] = a
       asum' (a:as) = a <|> asum' as
   {-# INLINE unfold #-}
-#endif
 
 -- | Unfold the structure, always using @()@ as elements.
 unfold_ :: (Unfoldable t, Unfolder f) => f (t ())
diff --git a/src/Data/Unfolder.hs b/src/Data/Unfolder.hs
--- a/src/Data/Unfolder.hs
+++ b/src/Data/Unfolder.hs
@@ -13,17 +13,6 @@
 -- allows the unfolder to do something special for the recursive positions
 -- of the data structure.
 -----------------------------------------------------------------------------
-{-# LANGUAGE
-    GeneralizedNewtypeDeriving
-  , RankNTypes
-  , Trustworthy
-  , CPP
-  #-}
-
-#if !defined(MIN_VERSION_containers)
-#define MIN_VERSION_containers(x,y,z) 0
-#endif
-
 module Data.Unfolder
   (
 
@@ -77,7 +66,6 @@
 import Control.Applicative.Backwards
 import Control.Applicative.Lift
 import Control.Monad.Trans.Except
-import Control.Monad.Trans.List
 import Control.Monad.Trans.Maybe
 import Control.Monad.Trans.RWS
 import Control.Monad.Trans.Reader
@@ -191,14 +179,6 @@
 instance (Functor m, Monad m, Monoid e) => Unfolder (ExceptT e m)
 
 -- | Derived instance.
-instance Applicative f => Unfolder (ListT f) where
-  {-# INLINABLE chooseMap #-}
-  chooseMap f = ListT . foldr appRun (pure [])
-    where
-      appRun x ys = (++) <$> runListT (f x) <*> ys
-  chooseInt n = ListT $ pure [0 .. n - 1]
-
--- | Derived instance.
 instance (Functor m, Monad m) => Unfolder (MaybeT m) where
   chooseMap _ [] = MaybeT (return Nothing)
   chooseMap f (a : as) = MaybeT $ do
@@ -227,10 +207,7 @@
 
 -- | Don't choose but return all items.
 instance Unfolder S.Seq where
-#if MIN_VERSION_containers(0,5,6)
   chooseInt n = S.fromFunction n id
-#endif
-
 
 newtype Random g m a = Random { getRandom :: StateT g m a }
   deriving (Functor, Applicative, Monad)
diff --git a/unfoldable.cabal b/unfoldable.cabal
--- a/unfoldable.cabal
+++ b/unfoldable.cabal
@@ -1,6 +1,6 @@
-cabal-version:        >= 1.10
+cabal-version:        3.6
 name:                 unfoldable
-version:              1.0.1
+version:              1.1
 synopsis:             Class of data structures that can be unfolded.
 description:          Just as there's a Foldable class, there should also be an Unfoldable class.
                       .
@@ -15,17 +15,19 @@
                       Some examples can be found in the examples directory.
 homepage:             https://github.com/sjoerdvisscher/unfoldable
 bug-reports:          https://github.com/sjoerdvisscher/unfoldable/issues
-license:              BSD3
+license:              BSD-3-Clause
 license-file:         LICENSE
 author:               Sjoerd Visscher
 maintainer:           sjoerd@w3future.com
 category:             Generics
 build-type:           Simple
-tested-with:          GHC==9.0.1, GHC==8.10.2, GHC==8.8.4
+tested-with:          GHC==9.6.7, GHC==9.8.4, GHC==9.10.3, GHC==9.12.2, GHC==9.14.1
 
 
-extra-Source-Files:
+extra-doc-files:
   CHANGELOG.md
+
+extra-source-files:
   examples/*.hs
   src/Data/Triunfoldable.hs
 
@@ -39,31 +41,23 @@
     Data.Biunfoldable
 
   build-depends:
-      base         >= 4   && < 5
-    , containers   >= 0.5 && < 0.7
-    , transformers >= 0.4 && < 0.6
-    , random       >= 1.0 && < 1.2
-    , QuickCheck   >= 2.7.3 && < 3.0
-
-  if impl(ghc >= 7.6) && impl(ghc < 9)
-    cpp-options:   -DGENERICS
-    build-depends:
-        ghc-prim     >= 0.2
-      , one-liner    >= 0.9 && < 2.0
-
-  if impl(ghc >= 9.0)
-    cpp-options:   -DGENERICS
-    build-depends:
-        ghc-prim     >= 0.2
-      , one-liner    >= 2.0 && < 3.0
+      base         == 4.*
+    , containers   >= 0.6 && < 0.8
+    , one-liner    == 2.*
+    , random       >= 1   && < 1.3
+    , transformers >= 0.4 && < 0.7
+    , QuickCheck   >= 2.7.3 && < 3
 
-  other-extensions:
+  default-extensions:
       GeneralizedNewtypeDeriving
     , RankNTypes
-    , Safe
     , Trustworthy
-    , CPP
+    , TupleSections
+    , TypeOperators
+    , DefaultSignatures
+    , FlexibleContexts
+    , TypeApplications
 
 source-repository head
   type:     git
-  location: git://github.com/sjoerdvisscher/unfoldable.git
+  location: https://github.com/sjoerdvisscher/unfoldable
