diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,10 @@
+# v0.4
+
+## Breaking
+
+- Removed interpretation-based relations: UTF-8, ISO-8601, and UUID. 
+  - Relations that depend on a specific encoding or format choice violate the library's principle of unambiguous structural conversion — there is no single canonical way to encode Text as bytes or render a UTCTime as a string.
+
 # v0.3
 
 ## Breaking
diff --git a/lawful-conversions.cabal b/lawful-conversions.cabal
--- a/lawful-conversions.cabal
+++ b/lawful-conversions.cabal
@@ -1,6 +1,6 @@
 cabal-version: 3.0
 name: lawful-conversions
-version: 0.3.1
+version: 0.4.0
 synopsis: Lawful typeclasses for bidirectional conversion between types
 category: Conversion
 homepage: https://github.com/nikita-volkov/lawful-conversions
@@ -103,17 +103,9 @@
     LawfulConversions.Relations.ByteArrayAndWord8List
     LawfulConversions.Relations.ByteStringAndLazyByteString
     LawfulConversions.Relations.ByteStringAndLazyByteStringBuilder
-    LawfulConversions.Relations.ByteStringAndLazyText
     LawfulConversions.Relations.ByteStringAndShortByteString
-    LawfulConversions.Relations.ByteStringAndString
-    LawfulConversions.Relations.ByteStringAndText
     LawfulConversions.Relations.ByteStringAndTextArray
     LawfulConversions.Relations.ByteStringAndWord8List
-    LawfulConversions.Relations.DayAndLazyText
-    LawfulConversions.Relations.DayAndLazyTextBuilder
-    LawfulConversions.Relations.DayAndStrictTextBuilder
-    LawfulConversions.Relations.DayAndString
-    LawfulConversions.Relations.DayAndText
     LawfulConversions.Relations.Int16AndWord16
     LawfulConversions.Relations.Int32AndWord32
     LawfulConversions.Relations.Int64AndWord64
@@ -122,10 +114,7 @@
     LawfulConversions.Relations.IntMapAndMapOfInt
     LawfulConversions.Relations.IntSetAndSetOfInt
     LawfulConversions.Relations.LazyByteStringAndLazyByteStringBuilder
-    LawfulConversions.Relations.LazyByteStringAndLazyText
     LawfulConversions.Relations.LazyByteStringAndShortByteString
-    LawfulConversions.Relations.LazyByteStringAndString
-    LawfulConversions.Relations.LazyByteStringAndText
     LawfulConversions.Relations.LazyByteStringAndTextArray
     LawfulConversions.Relations.LazyByteStringAndWord8List
     LawfulConversions.Relations.LazyByteStringBuilderAndShortByteString
@@ -135,25 +124,15 @@
     LawfulConversions.Relations.LazyTextAndStrictTextBuilder
     LawfulConversions.Relations.LazyTextAndString
     LawfulConversions.Relations.LazyTextAndText
-    LawfulConversions.Relations.LazyTextAndUtcTime
-    LawfulConversions.Relations.LazyTextAndUuid
     LawfulConversions.Relations.LazyTextBuilderAndStrictTextBuilder
     LawfulConversions.Relations.LazyTextBuilderAndString
     LawfulConversions.Relations.LazyTextBuilderAndText
-    LawfulConversions.Relations.LazyTextBuilderAndUtcTime
-    LawfulConversions.Relations.LazyTextBuilderAndUuid
     LawfulConversions.Relations.ListAndSeq
     LawfulConversions.Relations.ShortByteStringAndTextArray
     LawfulConversions.Relations.ShortByteStringAndWord8List
     LawfulConversions.Relations.StrictTextBuilderAndString
     LawfulConversions.Relations.StrictTextBuilderAndText
-    LawfulConversions.Relations.StrictTextBuilderAndUtcTime
-    LawfulConversions.Relations.StrictTextBuilderAndUuid
     LawfulConversions.Relations.StringAndText
-    LawfulConversions.Relations.StringAndUtcTime
-    LawfulConversions.Relations.StringAndUuid
-    LawfulConversions.Relations.TextAndUtcTime
-    LawfulConversions.Relations.TextAndUuid
     LawfulConversions.Relations.TextArrayAndWord8List
     LawfulConversions.Relations.Void
     LawfulConversions.TextCompat.Array
@@ -167,9 +146,7 @@
     primitive >=0.7 && <0.10,
     profunctors >=5 && <6,
     text >=1.2 && <2.2,
-    time >=1.9 && <2,
     unordered-containers >=0.2 && <0.3,
-    uuid-types >=1.0 && <1.1,
     vector >=0.12 && <0.14,
 
 test-suite test
diff --git a/src/library/LawfulConversions.hs b/src/library/LawfulConversions.hs
--- a/src/library/LawfulConversions.hs
+++ b/src/library/LawfulConversions.hs
@@ -83,6 +83,8 @@
     -- * Combinators
     from,
     maybeTo,
+    tryFrom,
+    tryTo,
     onto,
 
     -- * Optics
diff --git a/src/library/LawfulConversions/Algebra.hs b/src/library/LawfulConversions/Algebra.hs
--- a/src/library/LawfulConversions/Algebra.hs
+++ b/src/library/LawfulConversions/Algebra.hs
@@ -79,6 +79,21 @@
 maybeTo = maybeFrom
 
 -- |
+-- Like 'maybeFrom', but returns an 'Either' with the provided error on failure.
+--
+-- Useful for raising custom errors when conversion fails.
+tryFrom :: (IsSome a b) => e -> a -> Either e b
+tryFrom err a =
+  case maybeFrom a of
+    Just b -> Right b
+    Nothing -> Left err
+
+-- |
+-- Alias to 'tryFrom', which lets you specify the target type of the conversion first using @TypeApplications@.
+tryTo :: forall b a e. (IsSome a b) => e -> a -> Either e b
+tryTo = tryFrom
+
+-- |
 -- Lossy or canonicalizing conversion.
 -- Captures mappings from multiple alternative inputs into one output.
 --
diff --git a/src/library/LawfulConversions/Prelude.hs b/src/library/LawfulConversions/Prelude.hs
--- a/src/library/LawfulConversions/Prelude.hs
+++ b/src/library/LawfulConversions/Prelude.hs
@@ -55,7 +55,6 @@
 import Data.Text as Exports (Text)
 import Data.Traversable as Exports
 import Data.Tuple as Exports
-import Data.UUID.Types as Exports (UUID)
 import Data.Vector as Exports (Vector)
 import Data.Version as Exports
 import Data.Void as Exports
diff --git a/src/library/LawfulConversions/Relations.hs b/src/library/LawfulConversions/Relations.hs
--- a/src/library/LawfulConversions/Relations.hs
+++ b/src/library/LawfulConversions/Relations.hs
@@ -11,17 +11,9 @@
 import LawfulConversions.Relations.ByteArrayAndWord8List ()
 import LawfulConversions.Relations.ByteStringAndLazyByteString ()
 import LawfulConversions.Relations.ByteStringAndLazyByteStringBuilder ()
-import LawfulConversions.Relations.ByteStringAndLazyText ()
 import LawfulConversions.Relations.ByteStringAndShortByteString ()
-import LawfulConversions.Relations.ByteStringAndString ()
-import LawfulConversions.Relations.ByteStringAndText ()
 import LawfulConversions.Relations.ByteStringAndTextArray ()
 import LawfulConversions.Relations.ByteStringAndWord8List ()
-import LawfulConversions.Relations.DayAndLazyText ()
-import LawfulConversions.Relations.DayAndLazyTextBuilder ()
-import LawfulConversions.Relations.DayAndStrictTextBuilder ()
-import LawfulConversions.Relations.DayAndString ()
-import LawfulConversions.Relations.DayAndText ()
 import LawfulConversions.Relations.Int16AndWord16 ()
 import LawfulConversions.Relations.Int32AndWord32 ()
 import LawfulConversions.Relations.Int64AndWord64 ()
@@ -30,10 +22,7 @@
 import LawfulConversions.Relations.IntMapAndMapOfInt ()
 import LawfulConversions.Relations.IntSetAndSetOfInt ()
 import LawfulConversions.Relations.LazyByteStringAndLazyByteStringBuilder ()
-import LawfulConversions.Relations.LazyByteStringAndLazyText ()
 import LawfulConversions.Relations.LazyByteStringAndShortByteString ()
-import LawfulConversions.Relations.LazyByteStringAndString ()
-import LawfulConversions.Relations.LazyByteStringAndText ()
 import LawfulConversions.Relations.LazyByteStringAndTextArray ()
 import LawfulConversions.Relations.LazyByteStringAndWord8List ()
 import LawfulConversions.Relations.LazyByteStringBuilderAndShortByteString ()
@@ -43,24 +32,14 @@
 import LawfulConversions.Relations.LazyTextAndStrictTextBuilder ()
 import LawfulConversions.Relations.LazyTextAndString ()
 import LawfulConversions.Relations.LazyTextAndText ()
-import LawfulConversions.Relations.LazyTextAndUtcTime ()
-import LawfulConversions.Relations.LazyTextAndUuid ()
 import LawfulConversions.Relations.LazyTextBuilderAndStrictTextBuilder ()
 import LawfulConversions.Relations.LazyTextBuilderAndString ()
 import LawfulConversions.Relations.LazyTextBuilderAndText ()
-import LawfulConversions.Relations.LazyTextBuilderAndUtcTime ()
-import LawfulConversions.Relations.LazyTextBuilderAndUuid ()
 import LawfulConversions.Relations.ListAndSeq ()
 import LawfulConversions.Relations.ShortByteStringAndTextArray ()
 import LawfulConversions.Relations.ShortByteStringAndWord8List ()
 import LawfulConversions.Relations.StrictTextBuilderAndString ()
 import LawfulConversions.Relations.StrictTextBuilderAndText ()
-import LawfulConversions.Relations.StrictTextBuilderAndUtcTime ()
-import LawfulConversions.Relations.StrictTextBuilderAndUuid ()
 import LawfulConversions.Relations.StringAndText ()
-import LawfulConversions.Relations.StringAndUtcTime ()
-import LawfulConversions.Relations.StringAndUuid ()
-import LawfulConversions.Relations.TextAndUtcTime ()
-import LawfulConversions.Relations.TextAndUuid ()
 import LawfulConversions.Relations.TextArrayAndWord8List ()
 import LawfulConversions.Relations.Void ()
diff --git a/src/library/LawfulConversions/Relations/ByteStringAndLazyText.hs b/src/library/LawfulConversions/Relations/ByteStringAndLazyText.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/ByteStringAndLazyText.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.ByteStringAndLazyText where
-
-import qualified Data.ByteString.Lazy
-import qualified Data.Text.Encoding.Error
-import qualified Data.Text.Lazy
-import qualified Data.Text.Lazy.Encoding
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
--- | UTF-8 codec.
-instance IsSome ByteString Data.Text.Lazy.Text where
-  to = Data.ByteString.Lazy.toStrict . Data.Text.Lazy.Encoding.encodeUtf8
-  maybeFrom = either (const Nothing) Just . Data.Text.Lazy.Encoding.decodeUtf8' . Data.ByteString.Lazy.fromStrict
-
--- | Lenient UTF-8 decoding.
-instance IsMany ByteString Data.Text.Lazy.Text where
-  onfrom = Data.Text.Lazy.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode . Data.ByteString.Lazy.fromStrict
diff --git a/src/library/LawfulConversions/Relations/ByteStringAndString.hs b/src/library/LawfulConversions/Relations/ByteStringAndString.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/ByteStringAndString.hs
+++ /dev/null
@@ -1,18 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.ByteStringAndString where
-
-import qualified Data.Text
-import qualified Data.Text.Encoding
-import qualified Data.Text.Encoding.Error
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
--- | UTF-8 codec.
-instance IsSome ByteString String where
-  to = Data.Text.Encoding.encodeUtf8 . Data.Text.pack
-  maybeFrom = either (const Nothing) (Just . Data.Text.unpack) . Data.Text.Encoding.decodeUtf8'
-
--- | Lenient UTF-8 decoding.
-instance IsMany ByteString String where
-  onfrom = Data.Text.unpack . Data.Text.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode
diff --git a/src/library/LawfulConversions/Relations/ByteStringAndText.hs b/src/library/LawfulConversions/Relations/ByteStringAndText.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/ByteStringAndText.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.ByteStringAndText where
-
-import qualified Data.Text.Encoding
-import qualified Data.Text.Encoding.Error
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
--- | UTF-8 codec.
-instance IsSome ByteString Text where
-  to = Data.Text.Encoding.encodeUtf8
-  maybeFrom = either (const Nothing) Just . Data.Text.Encoding.decodeUtf8'
-
--- | Lenient UTF-8 decoding.
-instance IsMany ByteString Text where
-  onfrom = Data.Text.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode
diff --git a/src/library/LawfulConversions/Relations/DayAndLazyText.hs b/src/library/LawfulConversions/Relations/DayAndLazyText.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/DayAndLazyText.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.DayAndLazyText where
-
-import qualified Data.Text.Lazy
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.DayAndString ()
-import LawfulConversions.Relations.LazyTextAndString ()
-
--- | Implements ISO-8601.
-instance IsSome Data.Text.Lazy.Text Day where
-  to = fromString . to
-  maybeFrom = maybeFrom @String . to
diff --git a/src/library/LawfulConversions/Relations/DayAndLazyTextBuilder.hs b/src/library/LawfulConversions/Relations/DayAndLazyTextBuilder.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/DayAndLazyTextBuilder.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.DayAndLazyTextBuilder where
-
-import qualified Data.Text.Lazy.Builder
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.DayAndString ()
-import LawfulConversions.Relations.LazyTextBuilderAndString ()
-
--- | Implements ISO-8601.
-instance IsSome Data.Text.Lazy.Builder.Builder Day where
-  to = fromString . to
-  maybeFrom = maybeFrom @String . to
diff --git a/src/library/LawfulConversions/Relations/DayAndStrictTextBuilder.hs b/src/library/LawfulConversions/Relations/DayAndStrictTextBuilder.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/DayAndStrictTextBuilder.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.DayAndStrictTextBuilder where
-
-#if MIN_VERSION_text(2,1,2)
-
-import qualified Data.Text.Encoding
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.StrictTextBuilderAndString ()
-import LawfulConversions.Relations.StringAndText ()
-import LawfulConversions.Relations.DayAndString ()
-
--- | Implements ISO-8601.
-instance IsSome Data.Text.Encoding.StrictTextBuilder Day where
-  to = onfrom . to @String
-  maybeFrom = maybeFrom @String . to
-
-#elif MIN_VERSION_text(2,0,2)
-
-import qualified Data.Text.Encoding
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.StrictTextBuilderAndString ()
-import LawfulConversions.Relations.StringAndText ()
-import LawfulConversions.Relations.DayAndString ()
-
--- | Implements ISO-8601.
-instance IsSome Data.Text.Encoding.StrictBuilder Day where
-  to = onfrom . to @String
-  maybeFrom = maybeFrom @String . to
-
-#endif
diff --git a/src/library/LawfulConversions/Relations/DayAndString.hs b/src/library/LawfulConversions/Relations/DayAndString.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/DayAndString.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.DayAndString where
-
-import Data.Time
-import Data.Time.Format.ISO8601
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
--- | Implements ISO-8601.
-instance IsSome String Day where
-  to = iso8601Show
-  maybeFrom = iso8601ParseM
diff --git a/src/library/LawfulConversions/Relations/DayAndText.hs b/src/library/LawfulConversions/Relations/DayAndText.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/DayAndText.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.DayAndText where
-
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.DayAndString ()
-import LawfulConversions.Relations.StringAndText ()
-
--- | Implements ISO-8601.
-instance IsSome Text Day where
-  to = fromString . to
-  maybeFrom = maybeFrom @String . to
diff --git a/src/library/LawfulConversions/Relations/LazyByteStringAndLazyText.hs b/src/library/LawfulConversions/Relations/LazyByteStringAndLazyText.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/LazyByteStringAndLazyText.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.LazyByteStringAndLazyText where
-
-import qualified Data.ByteString.Lazy
-import qualified Data.Text.Encoding.Error
-import qualified Data.Text.Lazy
-import qualified Data.Text.Lazy.Encoding
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
--- | UTF-8 codec.
-instance IsSome Data.ByteString.Lazy.ByteString Data.Text.Lazy.Text where
-  to = Data.Text.Lazy.Encoding.encodeUtf8
-  maybeFrom = either (const Nothing) Just . Data.Text.Lazy.Encoding.decodeUtf8'
-
--- | Lenient UTF-8 decoding.
-instance IsMany Data.ByteString.Lazy.ByteString Data.Text.Lazy.Text where
-  onfrom = Data.Text.Lazy.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode
diff --git a/src/library/LawfulConversions/Relations/LazyByteStringAndString.hs b/src/library/LawfulConversions/Relations/LazyByteStringAndString.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/LazyByteStringAndString.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.LazyByteStringAndString where
-
-import qualified Data.ByteString.Lazy
-import qualified Data.Text.Encoding.Error
-import qualified Data.Text.Lazy
-import qualified Data.Text.Lazy.Encoding
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
--- | UTF-8 codec.
-instance IsSome Data.ByteString.Lazy.ByteString String where
-  to = Data.Text.Lazy.Encoding.encodeUtf8 . Data.Text.Lazy.pack
-  maybeFrom = either (const Nothing) (Just . Data.Text.Lazy.unpack) . Data.Text.Lazy.Encoding.decodeUtf8'
-
--- | Lenient UTF-8 decoding.
-instance IsMany Data.ByteString.Lazy.ByteString String where
-  onfrom = Data.Text.Lazy.unpack . Data.Text.Lazy.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode
diff --git a/src/library/LawfulConversions/Relations/LazyByteStringAndText.hs b/src/library/LawfulConversions/Relations/LazyByteStringAndText.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/LazyByteStringAndText.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.LazyByteStringAndText where
-
-import qualified Data.ByteString.Lazy
-import qualified Data.Text
-import qualified Data.Text.Encoding.Error
-import qualified Data.Text.Lazy
-import qualified Data.Text.Lazy.Encoding
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
--- | UTF-8 codec.
-instance IsSome Data.ByteString.Lazy.ByteString Data.Text.Text where
-  to = Data.Text.Lazy.Encoding.encodeUtf8 . Data.Text.Lazy.fromStrict
-  maybeFrom = either (const Nothing) (Just . Data.Text.Lazy.toStrict) . Data.Text.Lazy.Encoding.decodeUtf8'
-
--- | Lenient UTF-8 decoding.
-instance IsMany Data.ByteString.Lazy.ByteString Data.Text.Text where
-  onfrom = Data.Text.Lazy.toStrict . Data.Text.Lazy.Encoding.decodeUtf8With Data.Text.Encoding.Error.lenientDecode
diff --git a/src/library/LawfulConversions/Relations/LazyTextAndUtcTime.hs b/src/library/LawfulConversions/Relations/LazyTextAndUtcTime.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/LazyTextAndUtcTime.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.LazyTextAndUtcTime where
-
-import qualified Data.Text.Lazy
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.LazyTextAndString ()
-import LawfulConversions.Relations.StringAndUtcTime ()
-
--- | Implements ISO-8601.
-instance IsSome Data.Text.Lazy.Text UTCTime where
-  to = fromString . to
-  maybeFrom = maybeFrom @String . to
diff --git a/src/library/LawfulConversions/Relations/LazyTextAndUuid.hs b/src/library/LawfulConversions/Relations/LazyTextAndUuid.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/LazyTextAndUuid.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.LazyTextAndUuid where
-
-import qualified Data.Text.Lazy
-import qualified Data.UUID.Types
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
-instance IsSome Data.Text.Lazy.Text UUID where
-  to = Data.Text.Lazy.fromStrict . Data.UUID.Types.toText
-  maybeFrom = Data.UUID.Types.fromText . Data.Text.Lazy.toStrict
diff --git a/src/library/LawfulConversions/Relations/LazyTextBuilderAndUtcTime.hs b/src/library/LawfulConversions/Relations/LazyTextBuilderAndUtcTime.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/LazyTextBuilderAndUtcTime.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.LazyTextBuilderAndUtcTime where
-
-import qualified Data.Text.Lazy.Builder
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.LazyTextBuilderAndString ()
-import LawfulConversions.Relations.StringAndUtcTime ()
-
--- | Implements ISO-8601.
-instance IsSome Data.Text.Lazy.Builder.Builder UTCTime where
-  to = fromString . to
-  maybeFrom = maybeFrom @String . to
diff --git a/src/library/LawfulConversions/Relations/LazyTextBuilderAndUuid.hs b/src/library/LawfulConversions/Relations/LazyTextBuilderAndUuid.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/LazyTextBuilderAndUuid.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.LazyTextBuilderAndUuid where
-
-import qualified Data.Text.Lazy
-import qualified Data.Text.Lazy.Builder
-import qualified Data.UUID.Types
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
-instance IsSome Data.Text.Lazy.Builder.Builder UUID where
-  to = Data.Text.Lazy.Builder.fromText . Data.UUID.Types.toText
-  maybeFrom = Data.UUID.Types.fromText . Data.Text.Lazy.toStrict . Data.Text.Lazy.Builder.toLazyText
diff --git a/src/library/LawfulConversions/Relations/StrictTextBuilderAndUtcTime.hs b/src/library/LawfulConversions/Relations/StrictTextBuilderAndUtcTime.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/StrictTextBuilderAndUtcTime.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.StrictTextBuilderAndUtcTime where
-
-#if MIN_VERSION_text(2,1,2)
-
-import qualified Data.Text.Encoding
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.StrictTextBuilderAndString ()
-import LawfulConversions.Relations.StringAndText ()
-import LawfulConversions.Relations.StringAndUtcTime ()
-
--- | Implements ISO-8601.
-instance IsSome Data.Text.Encoding.StrictTextBuilder UTCTime where
-  to = onfrom . to @String
-  maybeFrom = maybeFrom @String . to
-
-#elif MIN_VERSION_text(2,0,2)
-
-import qualified Data.Text.Encoding
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.StrictTextBuilderAndString ()
-import LawfulConversions.Relations.StringAndText ()
-import LawfulConversions.Relations.StringAndUtcTime ()
-
--- | Implements ISO-8601.
-instance IsSome Data.Text.Encoding.StrictBuilder UTCTime where
-  to = onfrom . to @String
-  maybeFrom = maybeFrom @String . to
-
-#endif
diff --git a/src/library/LawfulConversions/Relations/StrictTextBuilderAndUuid.hs b/src/library/LawfulConversions/Relations/StrictTextBuilderAndUuid.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/StrictTextBuilderAndUuid.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.StrictTextBuilderAndUuid where
-
-#if MIN_VERSION_text(2,1,2)
-
-import qualified Data.UUID.Types
-import qualified Data.Text.Encoding
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
-instance IsSome Data.Text.Encoding.StrictTextBuilder UUID where
-  to = Data.Text.Encoding.textToStrictBuilder . Data.UUID.Types.toText
-  maybeFrom = Data.UUID.Types.fromText . Data.Text.Encoding.strictBuilderToText
-
-#elif MIN_VERSION_text(2,0,2)
-
-import qualified Data.UUID.Types
-import qualified Data.Text.Encoding
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
-instance IsSome Data.Text.Encoding.StrictBuilder UUID where
-  to = Data.Text.Encoding.textToStrictBuilder . Data.UUID.Types.toText
-  maybeFrom = Data.UUID.Types.fromText . Data.Text.Encoding.strictBuilderToText
-
-#endif
diff --git a/src/library/LawfulConversions/Relations/StringAndUtcTime.hs b/src/library/LawfulConversions/Relations/StringAndUtcTime.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/StringAndUtcTime.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.StringAndUtcTime where
-
-import Data.Time
-import Data.Time.Format.ISO8601
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
--- | Implements ISO-8601.
-instance IsSome String UTCTime where
-  to = iso8601Show
-  maybeFrom = iso8601ParseM
diff --git a/src/library/LawfulConversions/Relations/StringAndUuid.hs b/src/library/LawfulConversions/Relations/StringAndUuid.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/StringAndUuid.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.StringAndUuid where
-
-import qualified Data.UUID.Types
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
-instance IsSome String UUID where
-  to = Data.UUID.Types.toString
-  maybeFrom = Data.UUID.Types.fromString
diff --git a/src/library/LawfulConversions/Relations/TextAndUtcTime.hs b/src/library/LawfulConversions/Relations/TextAndUtcTime.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/TextAndUtcTime.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.TextAndUtcTime where
-
-import Data.Time
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-import LawfulConversions.Relations.StringAndText ()
-import LawfulConversions.Relations.StringAndUtcTime ()
-
--- | Implements ISO-8601.
-instance IsSome Text UTCTime where
-  to = fromString . to
-  maybeFrom = maybeFrom @String . to
diff --git a/src/library/LawfulConversions/Relations/TextAndUuid.hs b/src/library/LawfulConversions/Relations/TextAndUuid.hs
deleted file mode 100644
--- a/src/library/LawfulConversions/Relations/TextAndUuid.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{-# OPTIONS_GHC -Wno-orphans #-}
-
-module LawfulConversions.Relations.TextAndUuid where
-
-import qualified Data.UUID.Types as Uuid
-import LawfulConversions.Algebra
-import LawfulConversions.Prelude
-
-instance IsSome Text UUID where
-  to = Uuid.toText
-  maybeFrom = Uuid.fromText
diff --git a/src/test/Main.hs b/src/test/Main.hs
--- a/src/test/Main.hs
+++ b/src/test/Main.hs
@@ -110,33 +110,12 @@
       testIs @Word64 @Int64 Proxy Proxy,
       testIs @Word64 @Word64 Proxy Proxy,
       testIs @Word8 @Int8 Proxy Proxy,
-      testIs @Word8 @Word8 Proxy Proxy,
-      testIsSome @Data.Text.Lazy.Text @UTCTime Proxy Proxy,
-      testIsSome @Data.Text.Lazy.Builder.Builder @UTCTime Proxy Proxy,
-      testIsSome @String @UTCTime Proxy Proxy,
-      testIsSome @Text @UTCTime Proxy Proxy,
-      testIsSome @Data.Text.Lazy.Text @Day Proxy Proxy,
-      testIsSome @Data.Text.Lazy.Builder.Builder @Day Proxy Proxy,
-      testIsSome @String @Day Proxy Proxy,
-      testIsSome @Text @Day Proxy Proxy
+      testIs @Word8 @Word8 Proxy Proxy
     ]
 
 testIs :: (Is a b, Eq a, Eq b, Arbitrary a, Show a, Arbitrary b, Show b, Typeable a, Typeable b) => Proxy a -> Proxy b -> TestTree
 testIs superp subp =
   isProperties superp subp
-    & fmap (uncurry testProperty)
-    & testGroup groupName
-  where
-    groupName =
-      mconcat
-        [ show (typeOf (asProxyTypeOf undefined superp)),
-          "/",
-          show (typeOf (asProxyTypeOf undefined subp))
-        ]
-
-testIsSome :: (IsSome a b, Eq a, Eq b, Arbitrary a, Show a, Arbitrary b, Show b, Typeable a, Typeable b) => Proxy a -> Proxy b -> TestTree
-testIsSome superp subp =
-  isSomeProperties superp subp
     & fmap (uncurry testProperty)
     & testGroup groupName
   where
