diff --git a/eternity-timestamped.cabal b/eternity-timestamped.cabal
--- a/eternity-timestamped.cabal
+++ b/eternity-timestamped.cabal
@@ -1,7 +1,7 @@
 name:
   eternity-timestamped
 version:
-  0.2.1
+  0.2.2
 synopsis:
   Automatic timestamping for Eternity
 category:
@@ -40,6 +40,7 @@
     Haskell2010
   exposed-modules:
     Eternity.Timestamped.Data
+    Eternity.Timestamped.IO
     Eternity.Timestamped.Foldl
     Eternity.Timestamped.Potoki.Consume
     Eternity.Timestamped.Potoki.Produce
diff --git a/library/Eternity/Timestamped/IO.hs b/library/Eternity/Timestamped/IO.hs
new file mode 100644
--- /dev/null
+++ b/library/Eternity/Timestamped/IO.hs
@@ -0,0 +1,12 @@
+module Eternity.Timestamped.IO
+where
+
+import Eternity.Timestamped.Prelude
+import Eternity.Timestamped.Data
+
+
+timestamp :: event -> IO (Timestamped event)
+timestamp event =
+  do
+    posixTime <- getPOSIXTime
+    return (Timestamped (posixTimeTimestamp posixTime) event)
diff --git a/library/Eternity/Timestamped/Potoki/Transform.hs b/library/Eternity/Timestamped/Potoki/Transform.hs
--- a/library/Eternity/Timestamped/Potoki/Transform.hs
+++ b/library/Eternity/Timestamped/Potoki/Transform.hs
@@ -4,6 +4,7 @@
 import Eternity.Timestamped.Prelude
 import Eternity.Timestamped.Data
 import Potoki.Transform
+import qualified Eternity.Timestamped.IO as A
 
 
 {-|
@@ -18,6 +19,4 @@
 -}
 timestamp :: Transform event (Timestamped event)
 timestamp =
-  mapInIO $ \ event -> do
-    posixTime <- getPOSIXTime
-    return (Timestamped (posixTimeTimestamp posixTime) event)
+  mapInIO A.timestamp
