diff --git a/signet.cabal b/signet.cabal
--- a/signet.cabal
+++ b/signet.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.0
 name: signet
-version: 0.2025.5.21
+version: 1.0.0.0
 synopsis: Standard Webhooks
 description:
   Signet is a Haskell library for working with Standard Webhooks.
@@ -22,7 +22,10 @@
   manual: True
 
 common library
-  build-depends: base ^>=4.19 || ^>=4.20 || ^>=4.21
+  build-depends:
+    base ^>=4.19 || ^>=4.20 || ^>=4.21,
+    heck ^>=1,
+
   default-language: Haskell2010
   ghc-options:
     -Weverything
@@ -115,7 +118,6 @@
     Signet.Unstable.Type.SignerTest
     Signet.Unstable.Type.SymmetricSignature
     Signet.Unstable.Type.SymmetricSignatureTest
-    Signet.Unstable.Type.Test
     Signet.Unstable.Type.Timestamp
     Signet.Unstable.Type.TimestampTest
     Signet.Unstable.Type.Tolerance
diff --git a/source/library/Signet/Unstable/Exception/InvalidAsymmetricSignatureTest.hs b/source/library/Signet/Unstable/Exception/InvalidAsymmetricSignatureTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidAsymmetricSignatureTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidAsymmetricSignatureTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidAsymmetricSignatureTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidAsymmetricSignature" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidIdTest.hs b/source/library/Signet/Unstable/Exception/InvalidIdTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidIdTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidIdTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidIdTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidId" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidMessageTest.hs b/source/library/Signet/Unstable/Exception/InvalidMessageTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidMessageTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidMessageTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidMessageTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidMessage" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidPublicKeyTest.hs b/source/library/Signet/Unstable/Exception/InvalidPublicKeyTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidPublicKeyTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidPublicKeyTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidPublicKeyTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidPublicKey" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidSecretKeyTest.hs b/source/library/Signet/Unstable/Exception/InvalidSecretKeyTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidSecretKeyTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidSecretKeyTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidSecretKeyTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidSecretKey" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidSecretTest.hs b/source/library/Signet/Unstable/Exception/InvalidSecretTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidSecretTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidSecretTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidSecretTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidSecret" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidSignatureTest.hs b/source/library/Signet/Unstable/Exception/InvalidSignatureTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidSignatureTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidSignatureTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidSignatureTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidSignature" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidSignerTest.hs b/source/library/Signet/Unstable/Exception/InvalidSignerTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidSignerTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidSignerTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidSignerTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidSigner" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidSymmetricSignatureTest.hs b/source/library/Signet/Unstable/Exception/InvalidSymmetricSignatureTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidSymmetricSignatureTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidSymmetricSignatureTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidSymmetricSignatureTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidSymmetricSignature" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidTimestampTest.hs b/source/library/Signet/Unstable/Exception/InvalidTimestampTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidTimestampTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidTimestampTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidTimestampTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidTimestamp" $ do
diff --git a/source/library/Signet/Unstable/Exception/InvalidVerifierTest.hs b/source/library/Signet/Unstable/Exception/InvalidVerifierTest.hs
--- a/source/library/Signet/Unstable/Exception/InvalidVerifierTest.hs
+++ b/source/library/Signet/Unstable/Exception/InvalidVerifierTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.InvalidVerifierTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.InvalidVerifier" $ do
diff --git a/source/library/Signet/Unstable/Exception/SignetExceptionTest.hs b/source/library/Signet/Unstable/Exception/SignetExceptionTest.hs
--- a/source/library/Signet/Unstable/Exception/SignetExceptionTest.hs
+++ b/source/library/Signet/Unstable/Exception/SignetExceptionTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.SignetExceptionTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.SignetException" $ do
diff --git a/source/library/Signet/Unstable/Exception/ToleranceExceptionTest.hs b/source/library/Signet/Unstable/Exception/ToleranceExceptionTest.hs
--- a/source/library/Signet/Unstable/Exception/ToleranceExceptionTest.hs
+++ b/source/library/Signet/Unstable/Exception/ToleranceExceptionTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.ToleranceExceptionTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.ToleranceException" $ do
diff --git a/source/library/Signet/Unstable/Exception/UnknownSignatureTest.hs b/source/library/Signet/Unstable/Exception/UnknownSignatureTest.hs
--- a/source/library/Signet/Unstable/Exception/UnknownSignatureTest.hs
+++ b/source/library/Signet/Unstable/Exception/UnknownSignatureTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.UnknownSignatureTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.UnknownSignature" $ do
diff --git a/source/library/Signet/Unstable/Exception/VerificationExceptionTest.hs b/source/library/Signet/Unstable/Exception/VerificationExceptionTest.hs
--- a/source/library/Signet/Unstable/Exception/VerificationExceptionTest.hs
+++ b/source/library/Signet/Unstable/Exception/VerificationExceptionTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Exception.VerificationExceptionTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Exception.VerificationException" $ do
diff --git a/source/library/Signet/Unstable/Extra/EitherTest.hs b/source/library/Signet/Unstable/Extra/EitherTest.hs
--- a/source/library/Signet/Unstable/Extra/EitherTest.hs
+++ b/source/library/Signet/Unstable/Extra/EitherTest.hs
@@ -2,8 +2,8 @@
 
 import qualified Control.Monad.Catch as Exception
 import qualified Data.Void as Void
+import qualified Heck as Test
 import qualified Signet.Unstable.Extra.Either as Either
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Exception.MonadCatch io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Extra.Either" $ do
diff --git a/source/library/Signet/Unstable/Extra/HttpTest.hs b/source/library/Signet/Unstable/Extra/HttpTest.hs
--- a/source/library/Signet/Unstable/Extra/HttpTest.hs
+++ b/source/library/Signet/Unstable/Extra/HttpTest.hs
@@ -2,8 +2,8 @@
 
 import qualified Data.ByteString.Char8 as Ascii
 import qualified Data.CaseInsensitive as CI
+import qualified Heck as Test
 import qualified Signet.Unstable.Extra.Http as Http
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Applicative io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Extra.Http" $ do
diff --git a/source/library/Signet/Unstable/Extra/MaybeTest.hs b/source/library/Signet/Unstable/Extra/MaybeTest.hs
--- a/source/library/Signet/Unstable/Extra/MaybeTest.hs
+++ b/source/library/Signet/Unstable/Extra/MaybeTest.hs
@@ -1,8 +1,8 @@
 module Signet.Unstable.Extra.MaybeTest where
 
 import qualified Data.Void as Void
+import qualified Heck as Test
 import qualified Signet.Unstable.Extra.Maybe as Maybe
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Applicative io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Extra.Maybe" $ do
diff --git a/source/library/Signet/Unstable/Type/AsymmetricSignatureTest.hs b/source/library/Signet/Unstable/Type/AsymmetricSignatureTest.hs
--- a/source/library/Signet/Unstable/Type/AsymmetricSignatureTest.hs
+++ b/source/library/Signet/Unstable/Type/AsymmetricSignatureTest.hs
@@ -4,10 +4,10 @@
 import qualified Crypto.Error as Error
 import qualified Crypto.PubKey.Ed25519 as Ed25519
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidAsymmetricSignature as InvalidAsymmetricSignature
 import qualified Signet.Unstable.Extra.Either as Either
 import qualified Signet.Unstable.Type.AsymmetricSignature as AsymmetricSignature
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.AsymmetricSignature" $ do
diff --git a/source/library/Signet/Unstable/Type/IdTest.hs b/source/library/Signet/Unstable/Type/IdTest.hs
--- a/source/library/Signet/Unstable/Type/IdTest.hs
+++ b/source/library/Signet/Unstable/Type/IdTest.hs
@@ -1,9 +1,9 @@
 module Signet.Unstable.Type.IdTest where
 
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidId as InvalidId
 import qualified Signet.Unstable.Type.Id as Id
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Applicative io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.Id" $ do
diff --git a/source/library/Signet/Unstable/Type/MessageTest.hs b/source/library/Signet/Unstable/Type/MessageTest.hs
--- a/source/library/Signet/Unstable/Type/MessageTest.hs
+++ b/source/library/Signet/Unstable/Type/MessageTest.hs
@@ -2,13 +2,13 @@
 
 import qualified Control.Monad.Catch as Exception
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidMessage as InvalidMessage
 import qualified Signet.Unstable.Exception.InvalidTimestamp as InvalidTimestamp
 import qualified Signet.Unstable.Extra.Either as Either
 import qualified Signet.Unstable.Type.Id as Id
 import qualified Signet.Unstable.Type.Message as Message
 import qualified Signet.Unstable.Type.Payload as Payload
-import qualified Signet.Unstable.Type.Test as Test
 import qualified Signet.Unstable.Type.Timestamp as Timestamp
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
diff --git a/source/library/Signet/Unstable/Type/PayloadTest.hs b/source/library/Signet/Unstable/Type/PayloadTest.hs
--- a/source/library/Signet/Unstable/Type/PayloadTest.hs
+++ b/source/library/Signet/Unstable/Type/PayloadTest.hs
@@ -1,6 +1,6 @@
 module Signet.Unstable.Type.PayloadTest where
 
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 
 spec :: (Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.Payload" $ do
diff --git a/source/library/Signet/Unstable/Type/PublicKeyTest.hs b/source/library/Signet/Unstable/Type/PublicKeyTest.hs
--- a/source/library/Signet/Unstable/Type/PublicKeyTest.hs
+++ b/source/library/Signet/Unstable/Type/PublicKeyTest.hs
@@ -4,10 +4,10 @@
 import qualified Crypto.Error as Error
 import qualified Crypto.PubKey.Ed25519 as Ed25519
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidPublicKey as InvalidPublicKey
 import qualified Signet.Unstable.Extra.Either as Either
 import qualified Signet.Unstable.Type.PublicKey as PublicKey
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.PublicKey" $ do
diff --git a/source/library/Signet/Unstable/Type/SecretKeyTest.hs b/source/library/Signet/Unstable/Type/SecretKeyTest.hs
--- a/source/library/Signet/Unstable/Type/SecretKeyTest.hs
+++ b/source/library/Signet/Unstable/Type/SecretKeyTest.hs
@@ -4,10 +4,10 @@
 import qualified Crypto.Error as Error
 import qualified Crypto.PubKey.Ed25519 as Ed25519
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidSecretKey as InvalidSecretKey
 import qualified Signet.Unstable.Extra.Either as Either
 import qualified Signet.Unstable.Type.SecretKey as SecretKey
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.SecretKey" $ do
diff --git a/source/library/Signet/Unstable/Type/SecretTest.hs b/source/library/Signet/Unstable/Type/SecretTest.hs
--- a/source/library/Signet/Unstable/Type/SecretTest.hs
+++ b/source/library/Signet/Unstable/Type/SecretTest.hs
@@ -2,9 +2,9 @@
 
 import qualified Data.ByteArray as ByteArray
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidSecret as InvalidSecret
 import qualified Signet.Unstable.Type.Secret as Secret
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Applicative io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.Secret" $ do
diff --git a/source/library/Signet/Unstable/Type/SignatureTest.hs b/source/library/Signet/Unstable/Type/SignatureTest.hs
--- a/source/library/Signet/Unstable/Type/SignatureTest.hs
+++ b/source/library/Signet/Unstable/Type/SignatureTest.hs
@@ -6,6 +6,7 @@
 import qualified Crypto.PubKey.Ed25519 as Ed25519
 import qualified Data.ByteString as ByteString
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidAsymmetricSignature as InvalidAsymmetricSignature
 import qualified Signet.Unstable.Exception.InvalidSignature as InvalidSignature
 import qualified Signet.Unstable.Exception.InvalidSymmetricSignature as InvalidSymmetricSignature
@@ -14,7 +15,6 @@
 import qualified Signet.Unstable.Type.AsymmetricSignature as AsymmetricSignature
 import qualified Signet.Unstable.Type.Signature as Signature
 import qualified Signet.Unstable.Type.SymmetricSignature as SymmetricSignature
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.Signature" $ do
diff --git a/source/library/Signet/Unstable/Type/SignaturesTest.hs b/source/library/Signet/Unstable/Type/SignaturesTest.hs
--- a/source/library/Signet/Unstable/Type/SignaturesTest.hs
+++ b/source/library/Signet/Unstable/Type/SignaturesTest.hs
@@ -6,6 +6,7 @@
 import qualified Crypto.PubKey.Ed25519 as Ed25519
 import qualified Data.ByteString as ByteString
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidAsymmetricSignature as InvalidAsymmetricSignature
 import qualified Signet.Unstable.Exception.InvalidSignature as InvalidSignature
 import qualified Signet.Unstable.Exception.InvalidSymmetricSignature as InvalidSymmetricSignature
@@ -15,7 +16,6 @@
 import qualified Signet.Unstable.Type.Signature as Signature
 import qualified Signet.Unstable.Type.Signatures as Signatures
 import qualified Signet.Unstable.Type.SymmetricSignature as SymmetricSignature
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.Signatures" $ do
diff --git a/source/library/Signet/Unstable/Type/SignerTest.hs b/source/library/Signet/Unstable/Type/SignerTest.hs
--- a/source/library/Signet/Unstable/Type/SignerTest.hs
+++ b/source/library/Signet/Unstable/Type/SignerTest.hs
@@ -2,6 +2,7 @@
 
 import qualified Control.Monad.Catch as Exception
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidSigner as InvalidSigner
 import qualified Signet.Unstable.Extra.Either as Either
 import qualified Signet.Unstable.Type.AsymmetricSignature as AsymmetricSignature
@@ -11,7 +12,6 @@
 import qualified Signet.Unstable.Type.Signature as Signature
 import qualified Signet.Unstable.Type.Signer as Signer
 import qualified Signet.Unstable.Type.SymmetricSignature as SymmetricSignature
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.Signer" $ do
diff --git a/source/library/Signet/Unstable/Type/SymmetricSignatureTest.hs b/source/library/Signet/Unstable/Type/SymmetricSignatureTest.hs
--- a/source/library/Signet/Unstable/Type/SymmetricSignatureTest.hs
+++ b/source/library/Signet/Unstable/Type/SymmetricSignatureTest.hs
@@ -3,9 +3,9 @@
 import qualified Crypto.Hash as Hash
 import qualified Data.ByteString as ByteString
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidSymmetricSignature as InvalidSymmetricSignature
 import qualified Signet.Unstable.Type.SymmetricSignature as SymmetricSignature
-import qualified Signet.Unstable.Type.Test as Test
 
 spec :: (Applicative io, Monad tree) => Test.Test io tree -> tree ()
 spec test = Test.describe test "Signet.Unstable.Type.SymmetricSignature" $ do
diff --git a/source/library/Signet/Unstable/Type/Test.hs b/source/library/Signet/Unstable/Type/Test.hs
deleted file mode 100644
--- a/source/library/Signet/Unstable/Type/Test.hs
+++ /dev/null
@@ -1,23 +0,0 @@
-{-# LANGUAGE RankNTypes #-}
-
-module Signet.Unstable.Type.Test where
-
-import qualified Control.Monad as Monad
-import qualified GHC.Stack as Stack
-
-data Test io tree = MkTest
-  { assertFailure :: forall void. (Stack.HasCallStack) => String -> io void,
-    describe :: String -> tree () -> tree (),
-    it :: String -> io () -> tree ()
-  }
-
-assertEq ::
-  (Stack.HasCallStack, Applicative io, Eq a, Show a) =>
-  Test io tree ->
-  a ->
-  a ->
-  io ()
-assertEq test expected actual =
-  Monad.when (expected /= actual)
-    . assertFailure test
-    $ "expected " <> show expected <> " but got " <> show actual
diff --git a/source/library/Signet/Unstable/Type/TimestampTest.hs b/source/library/Signet/Unstable/Type/TimestampTest.hs
--- a/source/library/Signet/Unstable/Type/TimestampTest.hs
+++ b/source/library/Signet/Unstable/Type/TimestampTest.hs
@@ -3,9 +3,9 @@
 import qualified Control.Monad.Catch as Exception
 import qualified Data.ByteString.Char8 as Ascii
 import qualified Data.Time as Time
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidTimestamp as InvalidTimestamp
 import qualified Signet.Unstable.Extra.Either as Either
-import qualified Signet.Unstable.Type.Test as Test
 import qualified Signet.Unstable.Type.Timestamp as Timestamp
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
diff --git a/source/library/Signet/Unstable/Type/ToleranceTest.hs b/source/library/Signet/Unstable/Type/ToleranceTest.hs
--- a/source/library/Signet/Unstable/Type/ToleranceTest.hs
+++ b/source/library/Signet/Unstable/Type/ToleranceTest.hs
@@ -1,8 +1,8 @@
 module Signet.Unstable.Type.ToleranceTest where
 
 import qualified Data.Time as Time
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.ToleranceException as ToleranceException
-import qualified Signet.Unstable.Type.Test as Test
 import qualified Signet.Unstable.Type.Timestamp as Timestamp
 import qualified Signet.Unstable.Type.Tolerance as Tolerance
 
diff --git a/source/library/Signet/Unstable/Type/VerifierTest.hs b/source/library/Signet/Unstable/Type/VerifierTest.hs
--- a/source/library/Signet/Unstable/Type/VerifierTest.hs
+++ b/source/library/Signet/Unstable/Type/VerifierTest.hs
@@ -2,6 +2,7 @@
 
 import qualified Control.Monad.Catch as Exception
 import qualified Data.ByteString.Char8 as Ascii
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidVerifier as InvalidVerifier
 import qualified Signet.Unstable.Exception.VerificationException as VerificationException
 import qualified Signet.Unstable.Extra.Either as Either
@@ -12,7 +13,6 @@
 import qualified Signet.Unstable.Type.Signature as Signature
 import qualified Signet.Unstable.Type.Signatures as Signatures
 import qualified Signet.Unstable.Type.SymmetricSignature as SymmetricSignature
-import qualified Signet.Unstable.Type.Test as Test
 import qualified Signet.Unstable.Type.Verifier as Verifier
 
 spec :: (Exception.MonadThrow io, Monad tree) => Test.Test io tree -> tree ()
diff --git a/source/library/Signet/UnstableTest.hs b/source/library/Signet/UnstableTest.hs
--- a/source/library/Signet/UnstableTest.hs
+++ b/source/library/Signet/UnstableTest.hs
@@ -3,6 +3,7 @@
 import qualified Control.Monad.Catch as Exception
 import qualified Data.ByteString.Char8 as Ascii
 import qualified Data.Time as Time
+import qualified Heck as Test
 import qualified Signet.Unstable as Signet
 import qualified Signet.Unstable.Exception.SignetException as SignetException
 import qualified Signet.Unstable.Exception.ToleranceException as ToleranceException
@@ -11,7 +12,6 @@
 import qualified Signet.Unstable.Type.Message as Message
 import qualified Signet.Unstable.Type.Signature as Signature
 import qualified Signet.Unstable.Type.Signatures as Signatures
-import qualified Signet.Unstable.Type.Test as Test
 import qualified Signet.Unstable.Type.Tolerance as Tolerance
 import qualified Signet.Unstable.Type.Verifier as Verifier
 
diff --git a/source/library/SignetTest.hs b/source/library/SignetTest.hs
--- a/source/library/SignetTest.hs
+++ b/source/library/SignetTest.hs
@@ -1,6 +1,7 @@
 module SignetTest where
 
 import qualified Control.Monad.Catch as Exception
+import qualified Heck as Test
 import qualified Signet.Unstable.Exception.InvalidAsymmetricSignatureTest
 import qualified Signet.Unstable.Exception.InvalidIdTest
 import qualified Signet.Unstable.Exception.InvalidMessageTest
@@ -30,7 +31,6 @@
 import qualified Signet.Unstable.Type.SignaturesTest
 import qualified Signet.Unstable.Type.SignerTest
 import qualified Signet.Unstable.Type.SymmetricSignatureTest
-import qualified Signet.Unstable.Type.Test as Test
 import qualified Signet.Unstable.Type.TimestampTest
 import qualified Signet.Unstable.Type.ToleranceTest
 import qualified Signet.Unstable.Type.VerifierTest
diff --git a/source/test-suite/Main.hs b/source/test-suite/Main.hs
--- a/source/test-suite/Main.hs
+++ b/source/test-suite/Main.hs
@@ -1,5 +1,5 @@
 import qualified Control.Monad.Trans.Writer as Writer
-import qualified Signet.Unstable.Type.Test as Test
+import qualified Heck as Test
 import qualified SignetTest
 import qualified Test.Tasty as Tasty
 import qualified Test.Tasty.HUnit as Unit
