diff --git a/library/Potoki/Transform.hs b/library/Potoki/Transform.hs
--- a/library/Potoki/Transform.hs
+++ b/library/Potoki/Transform.hs
@@ -29,6 +29,7 @@
   -- * File IO
   deleteFile,
   appendBytesToFile,
+  writeTextToFile,
   -- * Debugging
   traceWithCounter,
 )
@@ -47,6 +48,7 @@
 import qualified Data.ByteString.Builder as E
 import qualified Data.ByteString.Lazy as F
 import qualified Data.ByteString as J
+import qualified Data.Text.IO as Q
 import qualified Data.Vector as P
 import qualified System.Directory as I
 import qualified Control.Concurrent.Chan.Unagi.Bounded as B
@@ -165,6 +167,13 @@
   try $ 
   withFile path AppendMode $ \ handle -> 
   J.hPut handle bytes
+
+{-# INLINABLE writeTextToFile #-}
+writeTextToFile :: Transform (FilePath, Text) (Either IOException ())
+writeTextToFile =
+  mapInIO $ \ (path, text) ->
+  try $ 
+  Q.writeFile path text
 
 {-# INLINE distinctBy #-}
 distinctBy :: (Eq comparable, Hashable comparable) => (element -> comparable) -> Transform element element
diff --git a/potoki.cabal b/potoki.cabal
--- a/potoki.cabal
+++ b/potoki.cabal
@@ -1,7 +1,7 @@
 name:
   potoki
 version:
-  0.10.3
+  0.10.4
 synopsis:
   Simple streaming in IO
 description:
