diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,10 @@
 # Revision history for pqueue
 
+## 1.4.1.4  -- 2021-12-04
+
+  * Maintenance release for ghc-9.0 & ghc-9.2 support
+  * Change nix-setup to use the seaaye tool
+
 ## 1.4.1.3  -- 2020-06-06
 
   * Maintenance release
diff --git a/pqueue.cabal b/pqueue.cabal
--- a/pqueue.cabal
+++ b/pqueue.cabal
@@ -1,33 +1,32 @@
-Name:               pqueue
-Version:            1.4.1.3
-Category:           Data Structures
-Author:             Louis Wasserman
-License:            BSD3
-License-file:       LICENSE
-Stability:          experimental
-Synopsis:           Reliable, persistent, fast priority queues.
-Description:        A fast, reliable priority queue implementation based on a binomial heap.
-Maintainer:         Lennart Spitzner <hexagoxel@hexagoxel.de>
+name:               pqueue
+version:            1.4.1.4
+category:           Data Structures
+author:             Louis Wasserman
+license:            BSD3
+license-file:       LICENSE
+stability:          experimental
+synopsis:           Reliable, persistent, fast priority queues.
+description:        A fast, reliable priority queue implementation based on a binomial heap.
+maintainer:         Lennart Spitzner <hexagoxel@hexagoxel.de>
                     Louis Wasserman <wasserman.louis@gmail.com>
-Bug-reports:        https://github.com/lspitzner/pqueue/issues
-Build-type:         Simple
+bug-reports:        https://github.com/lspitzner/pqueue/issues
+build-type:         Simple
 cabal-version:      >= 1.10
-tested-with:        GHC == 8.4.4, GHC == 8.6.5, GHC == 8.8.3, GHC == 8.10.1
-extra-source-files: {
+tested-with:        GHC == 8.6.5, GHC == 8.8.4, GHC == 8.10.7, GHC == 9.0.1, GHC == 9.2.1
+extra-source-files:
   include/Typeable.h
   CHANGELOG.md
-}
 
 source-repository head
   type: git
   location: git@github.com:lspitzner/pqueue.git
 
-Library {
+library
   hs-source-dirs: src
   default-language:
     Haskell2010
   build-depends:
-  { base >= 4.8 && < 4.15
+  { base >= 4.8 && < 4.17
   , deepseq >= 1.3 && < 1.5
   }
   exposed-modules:
@@ -48,21 +47,20 @@
     -Wall
     -fno-warn-inline-rule-shadowing
   }
-  if impl(ghc>=7.10) {
+  if impl(ghc >= 8.0) {
     ghc-options: {
       -fno-warn-unused-imports
     }
   }
-}
 
-Test-Suite test
+test-Suite test
   hs-source-dirs: tests
   default-language:
     Haskell2010
-  Type: exitcode-stdio-1.0
-  Main-Is: PQueueTests.hs
-  Build-Depends:
-  { base >= 4.8 && < 4.15
+  type: exitcode-stdio-1.0
+  main-is: PQueueTests.hs
+  build-depends:
+  { base >= 4.8 && < 4.17
   , deepseq >= 1.3 && < 1.5
   , QuickCheck >= 2.5 && < 3
   , pqueue
@@ -71,7 +69,7 @@
     -Wall
     -fno-warn-inline-rule-shadowing
   }
-  if impl(ghc>=7.10) {
+  if impl(ghc >= 8.0) {
     ghc-options: {
       -fno-warn-unused-imports
     }
diff --git a/src/Data/PQueue/Internals.hs b/src/Data/PQueue/Internals.hs
--- a/src/Data/PQueue/Internals.hs
+++ b/src/Data/PQueue/Internals.hs
@@ -32,16 +32,13 @@
 
 import Control.DeepSeq (NFData(rnf), deepseq)
 
-import Data.Functor ((<$>))
-import Data.Foldable (Foldable (foldr, foldl))
-import Data.Monoid (mappend)
 import qualified Data.PQueue.Prio.Internals as Prio
 
 #ifdef __GLASGOW_HASKELL__
 import Data.Data
 #endif
 
-import Prelude hiding (foldl, foldr, null)
+import Prelude hiding (null)
 
 -- | A priority queue with elements of type @a@. Supports extracting the minimum element.
 data MinQueue a = Empty | MinQueue {-# UNPACK #-} !Int a !(BinomHeap a)
diff --git a/src/Data/PQueue/Max.hs b/src/Data/PQueue/Max.hs
--- a/src/Data/PQueue/Max.hs
+++ b/src/Data/PQueue/Max.hs
@@ -84,10 +84,7 @@
 
 import Control.DeepSeq (NFData(rnf))
 
-import Data.Functor ((<$>))
-import Data.Monoid (Monoid(mempty, mappend))
 import Data.Maybe (fromMaybe)
-import Data.Foldable (foldl, foldr)
 
 #if MIN_VERSION_base(4,9,0)
 import Data.Semigroup (Semigroup((<>)))
@@ -97,7 +94,7 @@
 import qualified Data.PQueue.Prio.Max.Internals as Prio
 import Data.PQueue.Prio.Max.Internals (Down(..))
 
-import Prelude hiding (null, foldr, foldl, take, drop, takeWhile, dropWhile, splitAt, span, break, (!!), filter)
+import Prelude hiding (null, take, drop, takeWhile, dropWhile, splitAt, span, break, (!!), filter)
 
 #ifdef __GLASGOW_HASKELL__
 import GHC.Exts (build)
diff --git a/src/Data/PQueue/Min.hs b/src/Data/PQueue/Min.hs
--- a/src/Data/PQueue/Min.hs
+++ b/src/Data/PQueue/Min.hs
@@ -82,10 +82,9 @@
   keysQueue,
   seqSpine) where
 
-import Prelude hiding (null, foldr, foldl, take, drop, takeWhile, dropWhile, splitAt, span, break, (!!), filter, map)
+import Prelude hiding (null, take, drop, takeWhile, dropWhile, splitAt, span, break, (!!), filter, map)
 
-import Data.Monoid (Monoid(mempty, mappend, mconcat))
-import Data.Foldable (foldl, foldr, foldl')
+import Data.Foldable (foldl')
 import Data.Maybe (fromMaybe)
 
 #if MIN_VERSION_base(4,9,0)
diff --git a/src/Data/PQueue/Prio/Internals.hs b/src/Data/PQueue/Prio/Internals.hs
--- a/src/Data/PQueue/Prio/Internals.hs
+++ b/src/Data/PQueue/Prio/Internals.hs
@@ -33,7 +33,6 @@
   mapForest
   ) where
 
-import Control.Applicative (Applicative(..), (<$>))
 import Control.Applicative.Identity (Identity(Identity, runIdentity))
 import Control.DeepSeq (NFData(rnf), deepseq)
 
diff --git a/src/Data/PQueue/Prio/Max.hs b/src/Data/PQueue/Prio/Max.hs
--- a/src/Data/PQueue/Prio/Max.hs
+++ b/src/Data/PQueue/Prio/Max.hs
@@ -116,10 +116,6 @@
   )
   where
 
-import Control.Applicative (Applicative, (<$>))
-import Data.Monoid (Monoid(mempty, mappend, mconcat))
-import Data.Traversable (Traversable(traverse))
-import Data.Foldable (Foldable, foldr, foldl)
 import Data.Maybe (fromMaybe)
 import Data.PQueue.Prio.Max.Internals
 
@@ -127,7 +123,7 @@
 import Data.Semigroup (Semigroup((<>)))
 #endif
 
-import Prelude hiding (map, filter, break, span, takeWhile, dropWhile, splitAt, take, drop, (!!), null, foldr, foldl)
+import Prelude hiding (map, filter, break, span, takeWhile, dropWhile, splitAt, take, drop, (!!), null)
 
 import qualified Data.PQueue.Prio.Min as Q
 
diff --git a/src/Data/PQueue/Prio/Max/Internals.hs b/src/Data/PQueue/Prio/Max/Internals.hs
--- a/src/Data/PQueue/Prio/Max/Internals.hs
+++ b/src/Data/PQueue/Prio/Max/Internals.hs
@@ -4,14 +4,9 @@
 
 import Control.DeepSeq (NFData(rnf))
 
-import Data.Traversable (Traversable(traverse))
-import Data.Foldable (Foldable(foldr, foldl))
-import Data.Functor ((<$>))
 # if __GLASGOW_HASKELL__
 import Data.Data (Data, Typeable)
 # endif
-
-import Prelude hiding (foldr, foldl)
 
 import Data.PQueue.Prio.Internals (MinPQueue)
 
diff --git a/src/Data/PQueue/Prio/Min.hs b/src/Data/PQueue/Prio/Min.hs
--- a/src/Data/PQueue/Prio/Min.hs
+++ b/src/Data/PQueue/Prio/Min.hs
@@ -116,13 +116,7 @@
   )
   where
 
-import Control.Applicative (Applicative, pure, (<*>), (<$>))
-
 import qualified Data.List as List
-import qualified Data.Foldable as Fold(Foldable(..))
-import Data.Monoid (Monoid(mempty, mappend, mconcat))
-import Data.Traversable (Traversable(traverse))
-import Data.Foldable (Foldable)
 import Data.Maybe (fromMaybe)
 
 #if MIN_VERSION_base(4,9,0)
