diff --git a/library/TextBuilderDev.hs b/library/TextBuilderDev.hs
--- a/library/TextBuilderDev.hs
+++ b/library/TextBuilderDev.hs
@@ -23,6 +23,7 @@
 
     -- ** Textual
     text,
+    lazyText,
     string,
     asciiByteString,
     hexData,
@@ -100,7 +101,7 @@
 -- Unlike conversion classes from other libs this class is lawful.
 -- The law is:
 --
--- @fromTextBuilder . toTextBuilder = id@
+-- @'fromTextBuilder' . 'toTextBuilder' = 'id'@
 --
 -- This class does not provide implicit rendering,
 -- such as from integer to its decimal representation.
@@ -110,7 +111,7 @@
 -- the inverse conversion.
 -- In the integer case there is no way to read it
 -- from a textual form without a possibility of failing
--- (e.g., when the input string cannot be parsed as a integer).
+-- (e.g., when the input string cannot be parsed as an integer).
 --
 -- If you're looking for such conversion classes,
 -- this library is not a place for them,
@@ -134,7 +135,7 @@
   fromTextBuilder = Text.unpack . buildText
 
 instance IsomorphicToTextBuilder TextLazy.Text where
-  toTextBuilder = text . TextLazy.toStrict
+  toTextBuilder = lazyText
   fromTextBuilder = TextLazy.fromStrict . buildText
 
 instance IsomorphicToTextBuilder TextLazyBuilder.Builder where
@@ -176,6 +177,9 @@
 instance Show TextBuilder where
   show = Text.unpack . buildText
 
+instance Eq TextBuilder where
+  (==) = on (==) buildText
+
 -- * Accessors
 
 -- | Get the amount of characters
@@ -363,6 +367,11 @@
 #else
         B.copyI builderArray builderOffset array offset (builderOffset + length)
 #endif
+
+{-# INLINE lazyText #-}
+lazyText :: TextLazy.Text -> TextBuilder
+lazyText =
+  TextLazy.foldrChunks (mappend . text) mempty
 
 -- | String
 {-# INLINE string #-}
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -4,11 +4,14 @@
 import qualified Data.Char as Char
 import qualified Data.Text as Text
 import qualified Data.Text.Encoding as Text
+import qualified Data.Text.Lazy as TextLazy
+import qualified Data.Text.Lazy.Builder as TextLazyBuilder
 import Test.QuickCheck.Instances
 import Test.Tasty
 import Test.Tasty.HUnit
 import Test.Tasty.QuickCheck hiding ((.&.))
 import qualified TextBuilderDev as B
+import qualified TextBuilderDev.TastyExtras as Extras
 import Prelude hiding (choose)
 
 main =
@@ -134,7 +137,13 @@
           assertEqual "" "10.0000" (B.buildText (B.fixedDouble 4 10))
           assertEqual "" "0.9000" (B.buildText (B.fixedDouble 4 0.9)),
         testCase "doublePercent" $ do
-          assertEqual "" "90.4%" (B.buildText (B.doublePercent 1 0.904))
+          assertEqual "" "90.4%" (B.buildText (B.doublePercent 1 0.904)),
+        testGroup "IsomorphicToTextBuilder" $
+          [ Extras.isomorphismLaws "Text" $ Proxy @Text,
+            Extras.isomorphismLaws "Lazy Text" $ Proxy @TextLazy.Text,
+            Extras.isomorphismLaws "Lazy Text Builder" $ Proxy @TextLazyBuilder.Builder,
+            Extras.isomorphismLaws "String" $ Proxy @String
+          ]
       ]
   where
     bigTest = 10000
diff --git a/test/TextBuilderDev/TastyExtras.hs b/test/TextBuilderDev/TastyExtras.hs
new file mode 100644
--- /dev/null
+++ b/test/TextBuilderDev/TastyExtras.hs
@@ -0,0 +1,39 @@
+module TextBuilderDev.TastyExtras where
+
+import qualified Data.Text as Text
+import qualified Data.Text.Lazy.Builder as TextLazyBuilder
+import Test.QuickCheck.Instances
+import Test.Tasty
+import Test.Tasty.HUnit
+import Test.Tasty.QuickCheck
+import qualified TextBuilderDev as B
+import Prelude hiding (choose)
+
+-- *
+
+instance Arbitrary TextLazyBuilder.Builder where
+  arbitrary =
+    TextLazyBuilder.fromLazyText <$> arbitrary
+
+instance Arbitrary B.TextBuilder where
+  arbitrary =
+    B.lazyText <$> arbitrary
+
+-- *
+
+isomorphismLaws ::
+  (B.IsomorphicToTextBuilder a, Eq a, Show a, Arbitrary a) =>
+  String ->
+  Proxy a ->
+  TestTree
+isomorphismLaws subject proxy =
+  testGroup subject $
+    [ testProperty "fromTextBuilder . toTextBuilder == id" $
+        (===)
+          <$> B.fromTextBuilder . B.toTextBuilder
+          <*> flip asProxyTypeOf proxy,
+      testProperty "toTextBuilder . fromTextBuilder == id" $
+        (===)
+          <$> B.toTextBuilder . flip asProxyTypeOf proxy . B.fromTextBuilder
+          <*> id
+    ]
diff --git a/text-builder-dev.cabal b/text-builder-dev.cabal
--- a/text-builder-dev.cabal
+++ b/text-builder-dev.cabal
@@ -1,7 +1,7 @@
 cabal-version: 3.0
 
 name: text-builder-dev
-version: 0.3.0.2
+version: 0.3.1
 category: Text
 synopsis: Edge of developments for "text-builder"
 description:
@@ -49,6 +49,8 @@
   type: exitcode-stdio-1.0
   hs-source-dirs: test
   main-is: Main.hs
+  other-modules:
+    TextBuilderDev.TastyExtras
   build-depends:
     QuickCheck >=2.13 && <3,
     quickcheck-instances >=0.3.22 && <0.4,
