diff --git a/library/VectorBuilder/Alternative.hs b/library/VectorBuilder/Alternative.hs
new file mode 100644
--- /dev/null
+++ b/library/VectorBuilder/Alternative.hs
@@ -0,0 +1,19 @@
+{-|
+Alternative utilities.
+For instance, they can be applied with parsing libraries.
+-}
+module VectorBuilder.Alternative
+where
+
+import VectorBuilder.Prelude
+import Data.Vector (Vector)
+import qualified VectorBuilder.Builder as A
+import qualified VectorBuilder.Vector as B
+
+
+{-# INLINABLE many #-}
+many :: Alternative m => m a -> m (Vector a)
+many m =
+  fmap B.build loop
+  where
+    loop = ((<>) <$> A.singleton <$> m <*> loop) <|> pure mempty
diff --git a/vector-builder.cabal b/vector-builder.cabal
--- a/vector-builder.cabal
+++ b/vector-builder.cabal
@@ -1,7 +1,7 @@
 name:
   vector-builder
 version:
-  0.3.4.1
+  0.3.5
 synopsis:
   Vector builder
 description:
@@ -70,6 +70,7 @@
     VectorBuilder.MVector
     VectorBuilder.Vector
     VectorBuilder.MonadPlus
+    VectorBuilder.Alternative
   other-modules:
     VectorBuilder.Prelude
     VectorBuilder.Core.Update
