diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for merkle-log
 
+## 0.1.1 -- 2021-06-24
+
+*   Build with GHC-9
+
 ## 0.1.0.0 -- 2019-05-28
 
-* First version. Released on an unsuspecting world.
+*   First version. Released on an unsuspecting world.
diff --git a/bench/Main.hs b/bench/Main.hs
--- a/bench/Main.hs
+++ b/bench/Main.hs
@@ -30,14 +30,12 @@
 import Criterion.Main
 
 import Crypto.Hash
-import qualified Crypto.Hash.MerkleTree as MT
 
 import qualified Data.ByteArray as BA
 import qualified Data.ByteString as B
 import Data.ByteString.Random.MWC
 import qualified Data.HashTree as HT
 import Data.Maybe
-import Data.Serialize (encode)
 
 import GHC.Generics
 
@@ -68,7 +66,6 @@
             , bgroup "SHA3_256"
                 [ createBench @(ML SHA3_256) e
                 , createBench @(HT SHA3_256) e
-                , createBench @MT e
                 ]
             , bgroup "BLAKE2b_256"
                 [ createBench @(ML Blake2b_256) e
@@ -86,7 +83,6 @@
             , bgroup "SHA3_256"
                 [ proofBench @(ML SHA3_256) e
                 , proofBench @(HT SHA3_256) e
-                , proofBench @MT e
                 ]
             , bgroup "BLAKE2b_256"
                 [ proofBench @(ML Blake2b_256) e
@@ -104,7 +100,6 @@
             , bgroup "SHA3_256"
                 [ verifyBench @(ML SHA3_256) e
                 , verifyBench @(HT SHA3_256) e
-                , verifyBench @MT e
                 ]
             , bgroup "BLAKE2b_256"
                 [ verifyBench @(ML Blake2b_256) e
@@ -224,59 +219,6 @@
         let Right p = ML.merkleProof (ML.InputNode ix) i t
         in MLProof p (ML.merkleRoot t)
     verify (MLProof p r) = ML.runMerkleProof p == r
-
-    {-# INLINE label #-}
-    {-# INLINE tree #-}
-    {-# INLINE root #-}
-    {-# INLINE proof #-}
-    {-# INLINE verify #-}
-
--- -------------------------------------------------------------------------- --
--- merkle-tree package
-
-data MTProof = MTProof
-    !(MT.MerkleProof B.ByteString)
-    {-# UNPACK #-} !B.ByteString
-        -- ^ Proof subject (leaf)
-    {-# UNPACK #-} !(MT.MerkleRoot B.ByteString)
-        -- ^ Root of the Tree
-
--- | The merkle-tree package doesn't export the 'ProofElem'. Without that the
--- 'Generic' instance for 'MT.MerkleProof' become almost useless. In particular
--- we can't define an 'NFData' instance.
---
--- This instance is a workaround that probably leads to worse benchmark results.
---
-instance NFData MTProof where
-    -- rnf (MTProof p subj r) = rnf
-    --     $ MT.validateMerkleProof p r $ MT.mkLeafRootHash subj
-    rnf (MTProof p _ _) = rnf $ encode p
-    {-# INLINE rnf #-}
-
-instance NFData (MT.MerkleRoot B.ByteString) where
-    rnf r = rnf (MT.getMerkleRoot r)
-    {-# INLINE rnf #-}
-
-instance NFData (MT.MerkleTree B.ByteString) where
-    rnf t = rnf $ MT.mtRoot t
-    {-# INLINE rnf #-}
-
-data MT
-
-instance Impl MT where
-    type Tree MT = MT.MerkleTree B.ByteString
-    type Proof MT = MTProof
-    type Root MT = MT.MerkleRoot B.ByteString
-
-    label = "merkle-tree"
-    tree = MT.mkMerkleTree
-    root = MT.mtRoot
-    proof t subj _ = MTProof
-        (MT.merkleProof t (MT.mkLeafRootHash subj))
-        subj
-        (MT.mtRoot t)
-    verify (MTProof p subj r)
-        = MT.validateMerkleProof p r (MT.mkLeafRootHash subj)
 
     {-# INLINE label #-}
     {-# INLINE tree #-}
diff --git a/merkle-log.cabal b/merkle-log.cabal
--- a/merkle-log.cabal
+++ b/merkle-log.cabal
@@ -1,6 +1,6 @@
-cabal-version: 2.2
+cabal-version: 2.4
 name: merkle-log
-version: 0.1.0.0
+version: 0.1.1
 synopsis: Merkle Tree Logs
 description: Binary Merkle Trees
 homepage: https://github.com/kadena-io/merkle-log
@@ -11,6 +11,10 @@
 maintainer: Lars Kuhtz <lars@kadena.io>
 copyright: Copyright (c) 2019, Kadena LLC
 category: Data
+tested-with:
+    GHC==9.0.1
+    GHC==8.10.5
+    GHC==8.8.4
 extra-source-files:
     README.md
     CHANGELOG.md
@@ -27,7 +31,7 @@
     exposed-modules:
         Data.MerkleLog
     build-depends:
-          base >=4.11 && <4.14
+        , base >=4.11 && <5
         , bytestring >=0.10
         , cryptonite >=0.25
         , deepseq >=1.4
@@ -46,11 +50,11 @@
     main-is: Main.hs
     build-depends:
         -- internal
-          merkle-log
+        , merkle-log
 
         -- external
         , QuickCheck >=2.11
-        , base >=4.11 && <4.14
+        , base >=4.11 && <5
         , bytestring >=0.10
         , cryptonite >=0.25
         , deepseq >=1.4
@@ -68,19 +72,17 @@
     main-is: Main.hs
     build-depends:
         -- internal
-          merkle-log
+        , merkle-log
 
         -- external
         , QuickCheck >=2.11
-        , base >=4.11 && <4.14
+        , base >=4.11 && <5
         , bytestring >=0.10
-        , cereal >=0.5
         , criterion >=1.5
         , cryptonite >=0.25
         , deepseq >=1.4
         , hash-tree >=0.0
         , memory >=0.14
-        , merkle-tree >=0.1
         , mwc-random >=0.14
         , random >=1.1
         , random-bytestring >=0.1
diff --git a/src/Data/MerkleLog.hs b/src/Data/MerkleLog.hs
--- a/src/Data/MerkleLog.hs
+++ b/src/Data/MerkleLog.hs
@@ -114,7 +114,6 @@
 import Control.Monad.Catch
 
 import Crypto.Hash (hash)
-import Crypto.Hash.Algorithms (HashAlgorithm)
 import Crypto.Hash.IO
 
 import qualified Data.ByteArray as BA
