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.1.3
+version: 0.1.4
 synopsis: Lawful typeclasses for bidirectional conversion between types
 category: Conversion
 homepage: https://github.com/nikita-volkov/lawful-conversions
@@ -101,6 +101,11 @@
     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
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
@@ -14,6 +14,11 @@
 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 ()
@@ -33,18 +38,23 @@
 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 ()
diff --git a/src/library/LawfulConversions/Relations/DayAndLazyText.hs b/src/library/LawfulConversions/Relations/DayAndLazyText.hs
new file mode 100644
--- /dev/null
+++ b/src/library/LawfulConversions/Relations/DayAndLazyText.hs
@@ -0,0 +1,15 @@
+{-# OPTIONS_GHC -Wno-orphans #-}
+
+module LawfulConversions.Relations.DayAndLazyText where
+
+import qualified Data.Text.Lazy
+import Data.Time
+import LawfulConversions.Classes
+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
new file mode 100644
--- /dev/null
+++ b/src/library/LawfulConversions/Relations/DayAndLazyTextBuilder.hs
@@ -0,0 +1,15 @@
+{-# OPTIONS_GHC -Wno-orphans #-}
+
+module LawfulConversions.Relations.DayAndLazyTextBuilder where
+
+import qualified Data.Text.Lazy.Builder
+import Data.Time
+import LawfulConversions.Classes
+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
new file mode 100644
--- /dev/null
+++ b/src/library/LawfulConversions/Relations/DayAndStrictTextBuilder.hs
@@ -0,0 +1,36 @@
+{-# 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.Classes
+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 = from . to @String
+  maybeFrom = maybeFrom @String . to
+
+#elif MIN_VERSION_text(2,0,2)
+
+import qualified Data.Text.Encoding
+import Data.Time
+import LawfulConversions.Classes
+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 = from . to @String
+  maybeFrom = maybeFrom @String . to
+
+#endif
diff --git a/src/library/LawfulConversions/Relations/DayAndString.hs b/src/library/LawfulConversions/Relations/DayAndString.hs
new file mode 100644
--- /dev/null
+++ b/src/library/LawfulConversions/Relations/DayAndString.hs
@@ -0,0 +1,13 @@
+{-# OPTIONS_GHC -Wno-orphans #-}
+
+module LawfulConversions.Relations.DayAndString where
+
+import Data.Time
+import Data.Time.Format.ISO8601
+import LawfulConversions.Classes
+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
new file mode 100644
--- /dev/null
+++ b/src/library/LawfulConversions/Relations/DayAndText.hs
@@ -0,0 +1,14 @@
+{-# OPTIONS_GHC -Wno-orphans #-}
+
+module LawfulConversions.Relations.DayAndText where
+
+import Data.Time
+import LawfulConversions.Classes
+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/LazyTextAndUtcTime.hs b/src/library/LawfulConversions/Relations/LazyTextAndUtcTime.hs
--- a/src/library/LawfulConversions/Relations/LazyTextAndUtcTime.hs
+++ b/src/library/LawfulConversions/Relations/LazyTextAndUtcTime.hs
@@ -9,6 +9,7 @@
 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/LazyTextBuilderAndUtcTime.hs b/src/library/LawfulConversions/Relations/LazyTextBuilderAndUtcTime.hs
--- a/src/library/LawfulConversions/Relations/LazyTextBuilderAndUtcTime.hs
+++ b/src/library/LawfulConversions/Relations/LazyTextBuilderAndUtcTime.hs
@@ -9,6 +9,7 @@
 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/StrictTextBuilderAndUtcTime.hs b/src/library/LawfulConversions/Relations/StrictTextBuilderAndUtcTime.hs
--- a/src/library/LawfulConversions/Relations/StrictTextBuilderAndUtcTime.hs
+++ b/src/library/LawfulConversions/Relations/StrictTextBuilderAndUtcTime.hs
@@ -13,6 +13,7 @@
 import LawfulConversions.Relations.StringAndText ()
 import LawfulConversions.Relations.StringAndUtcTime ()
 
+-- | Implements ISO-8601.
 instance IsSome Data.Text.Encoding.StrictTextBuilder UTCTime where
   to = from . to @String
   maybeFrom = maybeFrom @String . to
@@ -27,6 +28,7 @@
 import LawfulConversions.Relations.StringAndText ()
 import LawfulConversions.Relations.StringAndUtcTime ()
 
+-- | Implements ISO-8601.
 instance IsSome Data.Text.Encoding.StrictBuilder UTCTime where
   to = from . to @String
   maybeFrom = maybeFrom @String . to
diff --git a/src/library/LawfulConversions/Relations/StringAndUtcTime.hs b/src/library/LawfulConversions/Relations/StringAndUtcTime.hs
--- a/src/library/LawfulConversions/Relations/StringAndUtcTime.hs
+++ b/src/library/LawfulConversions/Relations/StringAndUtcTime.hs
@@ -7,6 +7,7 @@
 import LawfulConversions.Classes
 import LawfulConversions.Prelude
 
+-- | Implements ISO-8601.
 instance IsSome String UTCTime where
   to = iso8601Show
   maybeFrom = iso8601ParseM
diff --git a/src/library/LawfulConversions/Relations/TextAndUtcTime.hs b/src/library/LawfulConversions/Relations/TextAndUtcTime.hs
--- a/src/library/LawfulConversions/Relations/TextAndUtcTime.hs
+++ b/src/library/LawfulConversions/Relations/TextAndUtcTime.hs
@@ -8,6 +8,7 @@
 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/test/Main.hs b/src/test/Main.hs
--- a/src/test/Main.hs
+++ b/src/test/Main.hs
@@ -1,11 +1,11 @@
 module Main where
 
-import qualified Data.ByteString.Builder as ByteStringBuilder
-import qualified Data.ByteString.Lazy as ByteStringLazy
-import qualified Data.ByteString.Short as ByteStringShort
-import qualified Data.Primitive.ByteArray as PrimitiveByteArray
-import qualified Data.Text.Lazy as TextLazy
-import qualified Data.Text.Lazy.Builder as TextLazyBuilder
+import qualified Data.ByteString.Builder as Data.ByteString.Builder
+import qualified Data.ByteString.Lazy as Data.ByteString.Lazy
+import qualified Data.ByteString.Short as Data.ByteString.Short
+import qualified Data.Primitive.ByteArray as Data.Primitive.ByteArray
+import qualified Data.Text.Lazy as Data.Text.Lazy
+import qualified Data.Text.Lazy.Builder as Data.Text.Lazy.Builder
 import LawfulConversions
 import Rebase.Prelude
 import Test.ExtraInstances ()
@@ -18,104 +18,125 @@
 allTests :: TestTree
 allTests =
   testGroup "All" $
-    [ testPair @[Word8] @ByteString Proxy Proxy,
-      testPair @[Word8] @ByteStringLazy.ByteString Proxy Proxy,
-      testPair @[Word8] @ByteStringShort.ShortByteString Proxy Proxy,
-      testPair @[Word8] @ByteStringBuilder.Builder Proxy Proxy,
-      testPair @[Word8] @PrimitiveByteArray.ByteArray Proxy Proxy,
-      testPair @[Word8] @[Word8] Proxy Proxy,
-      testPair @[Word8] @(Vector Word8) Proxy Proxy,
-      testPair @[Word8] @(Seq Word8) Proxy Proxy,
-      testPair @Text @Text Proxy Proxy,
-      testPair @Text @TextLazy.Text Proxy Proxy,
-      testPair @Text @TextLazyBuilder.Builder Proxy Proxy,
-      testPair @TextLazy.Text @TextLazy.Text Proxy Proxy,
-      testPair @TextLazy.Text @Text Proxy Proxy,
-      testPair @TextLazy.Text @TextLazyBuilder.Builder Proxy Proxy,
-      testPair @TextLazyBuilder.Builder @TextLazyBuilder.Builder Proxy Proxy,
-      testPair @TextLazyBuilder.Builder @Text Proxy Proxy,
-      testPair @TextLazyBuilder.Builder @TextLazy.Text Proxy Proxy,
-      testPair @ByteString @ByteString Proxy Proxy,
-      testPair @ByteString @[Word8] Proxy Proxy,
-      testPair @ByteString @ByteStringLazy.ByteString Proxy Proxy,
-      testPair @ByteString @ByteStringShort.ShortByteString Proxy Proxy,
-      testPair @ByteString @ByteStringBuilder.Builder Proxy Proxy,
-      testPair @ByteString @PrimitiveByteArray.ByteArray Proxy Proxy,
-      testPair @ByteStringLazy.ByteString @ByteStringLazy.ByteString Proxy Proxy,
-      testPair @ByteStringLazy.ByteString @[Word8] Proxy Proxy,
-      testPair @ByteStringLazy.ByteString @ByteString Proxy Proxy,
-      testPair @ByteStringLazy.ByteString @ByteStringShort.ShortByteString Proxy Proxy,
-      testPair @ByteStringLazy.ByteString @ByteStringBuilder.Builder Proxy Proxy,
-      testPair @ByteStringLazy.ByteString @PrimitiveByteArray.ByteArray Proxy Proxy,
-      testPair @ByteStringShort.ShortByteString @ByteStringShort.ShortByteString Proxy Proxy,
-      testPair @ByteStringShort.ShortByteString @[Word8] Proxy Proxy,
-      testPair @ByteStringShort.ShortByteString @ByteString Proxy Proxy,
-      testPair @ByteStringShort.ShortByteString @ByteStringLazy.ByteString Proxy Proxy,
-      testPair @ByteStringShort.ShortByteString @ByteStringBuilder.Builder Proxy Proxy,
-      testPair @ByteStringShort.ShortByteString @PrimitiveByteArray.ByteArray Proxy Proxy,
-      testPair @ByteStringBuilder.Builder @ByteStringBuilder.Builder Proxy Proxy,
-      testPair @ByteStringBuilder.Builder @[Word8] Proxy Proxy,
-      testPair @ByteStringBuilder.Builder @ByteString Proxy Proxy,
-      testPair @ByteStringBuilder.Builder @ByteStringLazy.ByteString Proxy Proxy,
-      testPair @ByteStringBuilder.Builder @ByteStringShort.ShortByteString Proxy Proxy,
-      testPair @ByteStringBuilder.Builder @PrimitiveByteArray.ByteArray Proxy Proxy,
-      testPair @PrimitiveByteArray.ByteArray @PrimitiveByteArray.ByteArray Proxy Proxy,
-      testPair @PrimitiveByteArray.ByteArray @[Word8] Proxy Proxy,
-      testPair @PrimitiveByteArray.ByteArray @ByteStringShort.ShortByteString Proxy Proxy,
-      testPair @PrimitiveByteArray.ByteArray @ByteString Proxy Proxy,
-      testPair @PrimitiveByteArray.ByteArray @ByteStringLazy.ByteString Proxy Proxy,
-      testPair @PrimitiveByteArray.ByteArray @ByteStringBuilder.Builder Proxy Proxy,
-      testPair @(Vector Word8) @(Vector Word8) Proxy Proxy,
-      testPair @(Vector Word8) @[Word8] Proxy Proxy,
-      testPair @(Vector Word8) @(Seq Word8) Proxy Proxy,
-      testPair @(Seq Word8) @(Seq Word8) Proxy Proxy,
-      testPair @(Seq Word8) @[Word8] Proxy Proxy,
-      testPair @(Seq Word8) @(Vector Word8) Proxy Proxy,
-      testPair @(Set Word8) @(Set Word8) Proxy Proxy,
-      testPair @(Set Int) @IntSet Proxy Proxy,
-      testPair @IntSet @IntSet Proxy Proxy,
-      testPair @IntSet @(Set Int) Proxy Proxy,
-      testPair @(Map Word8 Word8) @(Map Word8 Word8) Proxy Proxy,
-      testPair @(Map Int Word8) @(IntMap Word8) Proxy Proxy,
-      testPair @(IntMap Word8) @(IntMap Word8) Proxy Proxy,
-      testPair @(IntMap Word8) @(Map Int Word8) Proxy Proxy,
-      testPair @(Maybe Word8) @(Maybe Word8) Proxy Proxy,
-      testPair @(Either Word8 Word8) @(Either Word8 Word8) Proxy Proxy,
-      testPair @(First Word8) @(First Word8) Proxy Proxy,
-      testPair @(Last Word8) @(Last Word8) Proxy Proxy,
-      testPair @(Product Word8) @(Product Word8) Proxy Proxy,
-      testPair @(Sum Word8) @(Sum Word8) Proxy Proxy,
-      testPair @Bool @Bool Proxy Proxy,
-      testPair @Char @Char Proxy Proxy,
-      testPair @Double @Double Proxy Proxy,
-      testPair @Float @Float Proxy Proxy,
-      testPair @Int @Int Proxy Proxy,
-      testPair @Int @Word Proxy Proxy,
-      testPair @Int16 @Int16 Proxy Proxy,
-      testPair @Int16 @Word16 Proxy Proxy,
-      testPair @Int32 @Int32 Proxy Proxy,
-      testPair @Int32 @Word32 Proxy Proxy,
-      testPair @Int64 @Int64 Proxy Proxy,
-      testPair @Int64 @Word64 Proxy Proxy,
-      testPair @Int8 @Int8 Proxy Proxy,
-      testPair @Int8 @Word8 Proxy Proxy,
-      testPair @Integer @Integer Proxy Proxy,
-      testPair @Rational @Rational Proxy Proxy,
-      testPair @Word @Int Proxy Proxy,
-      testPair @Word @Word Proxy Proxy,
-      testPair @Word16 @Int16 Proxy Proxy,
-      testPair @Word16 @Word16 Proxy Proxy,
-      testPair @Word32 @Int32 Proxy Proxy,
-      testPair @Word32 @Word32 Proxy Proxy,
-      testPair @Word64 @Int64 Proxy Proxy,
-      testPair @Word64 @Word64 Proxy Proxy,
-      testPair @Word8 @Int8 Proxy Proxy,
-      testPair @Word8 @Word8 Proxy Proxy
+    [ testIs @[Word8] @ByteString Proxy Proxy,
+      testIs @[Word8] @Data.ByteString.Lazy.ByteString Proxy Proxy,
+      testIs @[Word8] @Data.ByteString.Short.ShortByteString Proxy Proxy,
+      testIs @[Word8] @Data.ByteString.Builder.Builder Proxy Proxy,
+      testIs @[Word8] @Data.Primitive.ByteArray.ByteArray Proxy Proxy,
+      testIs @[Word8] @[Word8] Proxy Proxy,
+      testIs @[Word8] @(Vector Word8) Proxy Proxy,
+      testIs @[Word8] @(Seq Word8) Proxy Proxy,
+      testIs @Text @Text Proxy Proxy,
+      testIs @Text @Data.Text.Lazy.Text Proxy Proxy,
+      testIs @Text @Data.Text.Lazy.Builder.Builder Proxy Proxy,
+      testIs @Data.Text.Lazy.Text @Data.Text.Lazy.Text Proxy Proxy,
+      testIs @Data.Text.Lazy.Text @Text Proxy Proxy,
+      testIs @Data.Text.Lazy.Text @Data.Text.Lazy.Builder.Builder Proxy Proxy,
+      testIs @Data.Text.Lazy.Builder.Builder @Data.Text.Lazy.Builder.Builder Proxy Proxy,
+      testIs @Data.Text.Lazy.Builder.Builder @Text Proxy Proxy,
+      testIs @Data.Text.Lazy.Builder.Builder @Data.Text.Lazy.Text Proxy Proxy,
+      testIs @ByteString @ByteString Proxy Proxy,
+      testIs @ByteString @[Word8] Proxy Proxy,
+      testIs @ByteString @Data.ByteString.Lazy.ByteString Proxy Proxy,
+      testIs @ByteString @Data.ByteString.Short.ShortByteString Proxy Proxy,
+      testIs @ByteString @Data.ByteString.Builder.Builder Proxy Proxy,
+      testIs @ByteString @Data.Primitive.ByteArray.ByteArray Proxy Proxy,
+      testIs @Data.ByteString.Lazy.ByteString @Data.ByteString.Lazy.ByteString Proxy Proxy,
+      testIs @Data.ByteString.Lazy.ByteString @[Word8] Proxy Proxy,
+      testIs @Data.ByteString.Lazy.ByteString @ByteString Proxy Proxy,
+      testIs @Data.ByteString.Lazy.ByteString @Data.ByteString.Short.ShortByteString Proxy Proxy,
+      testIs @Data.ByteString.Lazy.ByteString @Data.ByteString.Builder.Builder Proxy Proxy,
+      testIs @Data.ByteString.Lazy.ByteString @Data.Primitive.ByteArray.ByteArray Proxy Proxy,
+      testIs @Data.ByteString.Short.ShortByteString @Data.ByteString.Short.ShortByteString Proxy Proxy,
+      testIs @Data.ByteString.Short.ShortByteString @[Word8] Proxy Proxy,
+      testIs @Data.ByteString.Short.ShortByteString @ByteString Proxy Proxy,
+      testIs @Data.ByteString.Short.ShortByteString @Data.ByteString.Lazy.ByteString Proxy Proxy,
+      testIs @Data.ByteString.Short.ShortByteString @Data.ByteString.Builder.Builder Proxy Proxy,
+      testIs @Data.ByteString.Short.ShortByteString @Data.Primitive.ByteArray.ByteArray Proxy Proxy,
+      testIs @Data.ByteString.Builder.Builder @Data.ByteString.Builder.Builder Proxy Proxy,
+      testIs @Data.ByteString.Builder.Builder @[Word8] Proxy Proxy,
+      testIs @Data.ByteString.Builder.Builder @ByteString Proxy Proxy,
+      testIs @Data.ByteString.Builder.Builder @Data.ByteString.Lazy.ByteString Proxy Proxy,
+      testIs @Data.ByteString.Builder.Builder @Data.ByteString.Short.ShortByteString Proxy Proxy,
+      testIs @Data.ByteString.Builder.Builder @Data.Primitive.ByteArray.ByteArray Proxy Proxy,
+      testIs @Data.Primitive.ByteArray.ByteArray @Data.Primitive.ByteArray.ByteArray Proxy Proxy,
+      testIs @Data.Primitive.ByteArray.ByteArray @[Word8] Proxy Proxy,
+      testIs @Data.Primitive.ByteArray.ByteArray @Data.ByteString.Short.ShortByteString Proxy Proxy,
+      testIs @Data.Primitive.ByteArray.ByteArray @ByteString Proxy Proxy,
+      testIs @Data.Primitive.ByteArray.ByteArray @Data.ByteString.Lazy.ByteString Proxy Proxy,
+      testIs @Data.Primitive.ByteArray.ByteArray @Data.ByteString.Builder.Builder Proxy Proxy,
+      testIs @(Vector Word8) @(Vector Word8) Proxy Proxy,
+      testIs @(Vector Word8) @[Word8] Proxy Proxy,
+      testIs @(Vector Word8) @(Seq Word8) Proxy Proxy,
+      testIs @(Seq Word8) @(Seq Word8) Proxy Proxy,
+      testIs @(Seq Word8) @[Word8] Proxy Proxy,
+      testIs @(Seq Word8) @(Vector Word8) Proxy Proxy,
+      testIs @(Set Word8) @(Set Word8) Proxy Proxy,
+      testIs @(Set Int) @IntSet Proxy Proxy,
+      testIs @IntSet @IntSet Proxy Proxy,
+      testIs @IntSet @(Set Int) Proxy Proxy,
+      testIs @(Map Word8 Word8) @(Map Word8 Word8) Proxy Proxy,
+      testIs @(Map Int Word8) @(IntMap Word8) Proxy Proxy,
+      testIs @(IntMap Word8) @(IntMap Word8) Proxy Proxy,
+      testIs @(IntMap Word8) @(Map Int Word8) Proxy Proxy,
+      testIs @(Maybe Word8) @(Maybe Word8) Proxy Proxy,
+      testIs @(Either Word8 Word8) @(Either Word8 Word8) Proxy Proxy,
+      testIs @(First Word8) @(First Word8) Proxy Proxy,
+      testIs @(Last Word8) @(Last Word8) Proxy Proxy,
+      testIs @(Product Word8) @(Product Word8) Proxy Proxy,
+      testIs @(Sum Word8) @(Sum Word8) Proxy Proxy,
+      testIs @Bool @Bool Proxy Proxy,
+      testIs @Char @Char Proxy Proxy,
+      testIs @Double @Double Proxy Proxy,
+      testIs @Float @Float Proxy Proxy,
+      testIs @Int @Int Proxy Proxy,
+      testIs @Int @Word Proxy Proxy,
+      testIs @Int16 @Int16 Proxy Proxy,
+      testIs @Int16 @Word16 Proxy Proxy,
+      testIs @Int32 @Int32 Proxy Proxy,
+      testIs @Int32 @Word32 Proxy Proxy,
+      testIs @Int64 @Int64 Proxy Proxy,
+      testIs @Int64 @Word64 Proxy Proxy,
+      testIs @Int8 @Int8 Proxy Proxy,
+      testIs @Int8 @Word8 Proxy Proxy,
+      testIs @Integer @Integer Proxy Proxy,
+      testIs @Rational @Rational Proxy Proxy,
+      testIs @Word @Int Proxy Proxy,
+      testIs @Word @Word Proxy Proxy,
+      testIs @Word16 @Int16 Proxy Proxy,
+      testIs @Word16 @Word16 Proxy Proxy,
+      testIs @Word32 @Int32 Proxy Proxy,
+      testIs @Word32 @Word32 Proxy Proxy,
+      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
     ]
 
-testPair :: (Is a b, Eq a, Eq b, Arbitrary a, Show a, Arbitrary b, Show b, Typeable a, Typeable b) => Proxy a -> Proxy b -> TestTree
-testPair superp subp =
+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
