diff --git a/library/Potoki/Fetch.hs b/library/Potoki/Fetch.hs
--- a/library/Potoki/Fetch.hs
+++ b/library/Potoki/Fetch.hs
@@ -85,3 +85,14 @@
 finiteMVar var =
   Fetch $ \ nil just ->
   fmap (maybe nil just) (takeMVar var)
+
+{-# INLINABLE vector #-}
+vector :: IORef Int -> Vector element -> Fetch element
+vector indexRef vector =
+  Fetch $ \ nil just -> do
+    index <- readIORef indexRef
+    if index < C.length vector
+      then do
+        writeIORef indexRef (succ index)
+        return (just (C.unsafeIndex vector index))
+      else return nil
diff --git a/library/Potoki/Transform.hs b/library/Potoki/Transform.hs
--- a/library/Potoki/Transform.hs
+++ b/library/Potoki/Transform.hs
@@ -12,6 +12,7 @@
   filter,
   just,
   list,
+  vector,
   distinctBy,
   distinct,
   builderChunks,
@@ -46,6 +47,7 @@
 import qualified Data.ByteString.Builder as E
 import qualified Data.ByteString.Lazy as F
 import qualified Data.ByteString as J
+import qualified Data.Vector as P
 import qualified System.Directory as I
 import qualified Control.Concurrent.Chan.Unagi.Bounded as B
 import qualified Control.Monad.Trans.State.Strict as O
@@ -244,6 +246,23 @@
                       return nil
                 in join (fetchListIO nilIO justIO)
             in fetchElementIO
+
+vector :: Transform (Vector a) a
+vector =
+  Transform $ \ (A.Fetch fetchVectorIO) -> do
+    indexRef <- newIORef 0
+    vectorRef <- newIORef mempty
+    return $ A.Fetch $ \ nil just -> fix $ \ loop -> do
+      vector <- readIORef vectorRef
+      index <- readIORef indexRef
+      if index < P.length vector
+        then do
+          writeIORef indexRef (succ index)
+          return (just (P.unsafeIndex vector index))
+        else join $ fetchVectorIO (return nil) $ \ vector -> do
+          writeIORef vectorRef vector
+          writeIORef indexRef 0
+          loop
 
 {-|
 Useful for debugging
diff --git a/library/Potoki/Transform/Concurrency.hs b/library/Potoki/Transform/Concurrency.hs
--- a/library/Potoki/Transform/Concurrency.hs
+++ b/library/Potoki/Transform/Concurrency.hs
@@ -55,8 +55,11 @@
 {-# INLINABLE concurrently #-}
 concurrently :: Int -> Transform input output -> Transform input output
 concurrently workersAmount transform =
-  sync >>>
-  concurrentlyUnsafe workersAmount transform
+  if workersAmount == 1
+    then transform
+    else
+      sync >>>
+      concurrentlyUnsafe workersAmount transform
 
 {-# INLINE concurrentlyUnsafe #-}
 concurrentlyUnsafe :: Int -> Transform input output -> Transform input output
diff --git a/potoki.cabal b/potoki.cabal
--- a/potoki.cabal
+++ b/potoki.cabal
@@ -1,7 +1,7 @@
 name:
   potoki
 version:
-  0.10.2
+  0.10.3
 synopsis:
   Simple streaming in IO
 description:
