diff --git a/library/Potoki/Core/Transform/Basic.hs b/library/Potoki/Core/Transform/Basic.hs
--- a/library/Potoki/Core/Transform/Basic.hs
+++ b/library/Potoki/Core/Transform/Basic.hs
@@ -71,19 +71,19 @@
             in fetchElementIO
 
 {-# INLINABLE vector #-}
-vector :: Transform (Vector a) a
+vector :: GenericVector.Vector vector a => Transform (vector a) a
 vector =
-  Transform $ \ (A.Fetch fetchVectorIO) -> M.Acquire $ do
+  Transform $ \ (Fetch fetchVectorIO) -> liftIO $ do
     indexRef <- newIORef 0
-    vectorRef <- newIORef mempty
-    return $ (, return ()) $ A.Fetch $ let
+    vectorRef <- newIORef GenericVector.empty
+    return $ Fetch $ let
       loop = do
         vectorVal <- readIORef vectorRef
         indexVal <- readIORef indexRef
-        if indexVal < P.length vectorVal
+        if indexVal < GenericVector.length vectorVal
           then do
             writeIORef indexRef (succ indexVal)
-            return (Just (P.unsafeIndex vectorVal indexVal))
+            return (Just (GenericVector.unsafeIndex vectorVal indexVal))
           else fetchVectorIO >>= \case 
             Just vectorVal' -> do
               writeIORef vectorRef vectorVal'
@@ -96,7 +96,7 @@
 Alias to "batch".
 -}
 {-# DEPRECATED chunk "Use 'batch' instead" #-}
-chunk :: Int -> Transform a (Vector a)
+chunk :: GenericVector.Vector vector a => Int -> Transform a (vector a)
 chunk = batch
 
 {-|
@@ -106,7 +106,7 @@
 Actually, there is a composed variation of 'concurrently', which utilizes it: 'concurrentlyWithBatching'.
 -}
 {-# INLINABLE batch #-}
-batch :: Int -> Transform a (Vector a)
+batch :: GenericVector.Vector vector a => Int -> Transform a (vector a)
 batch size = if size < 1
   then Transform $ const $ liftIO $ return $ empty
   else Transform $ \ (Fetch fetch) -> liftIO $ do
diff --git a/library/Potoki/Core/Transform/Concurrency.hs b/library/Potoki/Core/Transform/Concurrency.hs
--- a/library/Potoki/Core/Transform/Concurrency.hs
+++ b/library/Potoki/Core/Transform/Concurrency.hs
@@ -154,6 +154,6 @@
 
 concurrentlyWithBatching :: Int -> Int -> Transform a b -> Transform a b
 concurrentlyWithBatching batching concurrency transform =
-  batch batching >>> bufferize concurrency >>>
-  unsafeConcurrently concurrency (vector >>> transform >>> batch batching) >>>
+  batch @Vector batching >>> bufferize concurrency >>>
+  unsafeConcurrently concurrency (vector >>> transform >>> batch @Vector batching) >>>
   vector
diff --git a/potoki-core.cabal b/potoki-core.cabal
--- a/potoki-core.cabal
+++ b/potoki-core.cabal
@@ -1,5 +1,5 @@
 name: potoki-core
-version: 2.2.13.1
+version: 2.2.14
 synopsis: Low-level components of "potoki"
 description:
   Provides everything required for building custom instances of
@@ -24,7 +24,7 @@
 
 library
   hs-source-dirs: library
-  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, InstanceSigs, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
+  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, InstanceSigs, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeApplications, TypeFamilies, TypeOperators, UnboxedTuples
   default-language: Haskell2010
   exposed-modules:
     Potoki.Core.Produce
@@ -67,7 +67,7 @@
   type: exitcode-stdio-1.0
   hs-source-dirs: test
   main-is: Main.hs
-  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, InstanceSigs, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
+  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, InstanceSigs, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeApplications, TypeFamilies, TypeOperators, UnboxedTuples
   default-language: Haskell2010
   other-modules:
     Potoki
@@ -90,7 +90,7 @@
 benchmark benchmark
   type: exitcode-stdio-1.0
   hs-source-dirs: benchmark
-  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, InstanceSigs, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
+  default-extensions: Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, InstanceSigs, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeApplications, TypeFamilies, TypeOperators, UnboxedTuples
   default-language: Haskell2010
   ghc-options: -O2 -threaded "-with-rtsopts=-N -A64M"
   main-is: Main.hs
