diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,8 @@
+# 0.4.5
+
+- Migrates from `semialign-1.3` to `semialign-1.4`,
+  which introduces `Unzip` class as a parent of `Semialign` class.
+
 # 0.4.4
 
 - ([#7](https://github.com/viercc/trie-simple/issues/17))
diff --git a/src/Data/Trie/Map/Hidden.hs b/src/Data/Trie/Map/Hidden.hs
--- a/src/Data/Trie/Map/Hidden.hs
+++ b/src/Data/Trie/Map/Hidden.hs
@@ -76,7 +76,7 @@
 import Data.Hashable
 import Witherable
 import Data.These (These(..))
-import Data.Zip (Zip(..))
+import Data.Zip (Unzip(..), Zip(..), unzipDefault)
 import Data.Align ( Align(..), Semialign(..) )
 import Data.Matchable
 
@@ -191,6 +191,9 @@
       mb = wither (f []) ma
       edges' = iwither child edges
       child c t = nonEmptyTMap <$> iwither (f . (c :)) t
+
+instance Unzip (TMap c) where
+  unzip = unzipDefault
 
 instance Ord c => Semialign (TMap c) where
   align (TMap (Node ma e1)) (TMap (Node mb e2)) = TMap (Node mc e')
diff --git a/trie-simple.cabal b/trie-simple.cabal
--- a/trie-simple.cabal
+++ b/trie-simple.cabal
@@ -1,5 +1,5 @@
 name:                trie-simple
-version:             0.4.4
+version:             0.4.5
 synopsis:            Simple Map-based Trie
 description:
   A trie data structure @TMap c v@, to hold a mapping from list of characters (@[c]@) to
@@ -18,7 +18,7 @@
 extra-source-files:  README.md
 extra-doc-files:     CHANGELOG.md
 cabal-version:       2.0
-tested-with:         GHC == 9.2.8, GHC == 9.4.8, GHC == 9.6.6, GHC == 9.8.2, GHC ==9.10.1
+tested-with:         GHC == 9.4.8, GHC == 9.6.7, GHC == 9.8.4, GHC ==9.10.3, GHC ==9.12.2, GHC ==9.14.1
 
 source-repository head
   type:     git
@@ -33,15 +33,15 @@
                        Data.Trie.Map.Internal
   other-modules:       Data.Trie.Set.Hidden,
                        Data.Trie.Map.Hidden
-  build-depends:       base         >= 4.14     && < 4.22,
-                       containers   >= 0.5.7.1 && < 0.8,
+  build-depends:       base         >= 4.14     && < 4.23,
+                       containers   >= 0.5.7.1 && < 0.9,
                        deepseq      >= 1.4.2.0 && < 1.6,
                        mtl          >= 2.2.1   && < 2.4,
                        indexed-traversable >= 0.1.1 && <0.2,
                        witherable   >= 0.4 && < 0.6,
                        matchable    >= 0.1.2 && <0.3,
                        hashable     >= 1.3 && < 1.6,
-                       semialign    >= 1.3 && < 1.4,
+                       semialign    >= 1.4 && < 1.5,
                        these        >= 1 && < 2
   default-language:    Haskell2010
   ghc-options:         -Wall -Wno-dodgy-exports
