diff --git a/foldl-benchmark/Main.hs b/foldl-benchmark/Main.hs
deleted file mode 100644
--- a/foldl-benchmark/Main.hs
+++ /dev/null
@@ -1,43 +0,0 @@
-module Main where
-
-import Prelude
-import Criterion
-import Criterion.Main
-import qualified Control.Foldl as A
-import qualified Data.Vector as F
-import qualified Data.Vector.Unboxed as G
-import qualified VectorBuilder.Builder as N
-import qualified VectorBuilder.Vector as O
-
-
-main =
-  defaultMain [boxed, unboxed]
-  where
-    comparisons name builderSubject growingSubject =
-      bgroup name (map comparison sizes)
-      where
-        sizes =
-          [1000, 10000, 100000, 1000000, 10000000]
-        comparison size =
-          bgroup (show size)
-          [
-            bench "builder" (nf builderSubject input),
-            bench "growing" (nf growingSubject input)
-          ]
-          where
-            input =
-              [0..size]
-    boxed =
-      comparisons "boxed" builderSubject growingSubject
-      where
-        builderSubject input =
-          A.fold (A.foldMap N.singleton O.build) input :: Vector Int
-        growingSubject input =
-          runST (A.foldM A.vector input) :: Vector Int
-    unboxed =
-      comparisons "unboxed" builderSubject growingSubject
-      where
-        builderSubject input =
-          A.fold (A.foldMap N.singleton O.build) input :: G.Vector Int
-        growingSubject input =
-          runST (A.foldM A.vector input) :: G.Vector Int
diff --git a/foldl-profiling/Main.hs b/foldl-profiling/Main.hs
deleted file mode 100644
--- a/foldl-profiling/Main.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Main where
-
-import Prelude
-import qualified Data.Vector.Unboxed as V
-import qualified Control.Foldl as L
-import qualified VectorBuilder.Builder as N
-import qualified VectorBuilder.Vector as O
-
-main :: IO ()
-main = (print . V.maximum) (L.fold fold input) where
-  input = [1..1000000] :: [Int]
-  fold = L.Fold step begin done where
-    begin = N.empty
-    step x a = x <> N.singleton a
-    done = O.build
diff --git a/library/VectorBuilder/Alternative.hs b/library/VectorBuilder/Alternative.hs
--- a/library/VectorBuilder/Alternative.hs
+++ b/library/VectorBuilder/Alternative.hs
@@ -5,7 +5,7 @@
 module VectorBuilder.Alternative
 where
 
-import VectorBuilder.Prelude
+import VectorBuilder.Prelude hiding (many, some)
 import Data.Vector (Vector)
 import qualified VectorBuilder.Builder as A
 import qualified VectorBuilder.Vector as B
@@ -13,7 +13,18 @@
 
 {-# INLINABLE many #-}
 many :: Alternative m => m a -> m (Vector a)
-many m =
-  fmap B.build loop
-  where
-    loop = ((<>) <$> A.singleton <$> m <*> loop) <|> pure mempty
+many = fmap B.build . manyBuilder
+
+{-# INLINABLE manyBuilder #-}
+manyBuilder :: Alternative m => m a -> m (A.Builder a)
+manyBuilder m = let
+  loop = ((<>) <$> A.singleton <$> m <*> loop) <|> pure mempty
+  in loop
+
+{-# INLINABLE some #-}
+some :: Alternative m => m a -> m (Vector a)
+some m = B.build <$> someBuilder m
+
+{-# INLINABLE someBuilder #-}
+someBuilder :: Alternative m => m a -> m (A.Builder a)
+someBuilder m = (<>) <$> A.singleton <$> m <*> manyBuilder m
diff --git a/tests/Main.hs b/tests/Main.hs
--- a/tests/Main.hs
+++ b/tests/Main.hs
@@ -1,13 +1,16 @@
 module Main where
 
-import Rebase.Prelude
+import Prelude
 import Test.Tasty
 import Test.Tasty.Runners
 import Test.Tasty.HUnit
 import Test.Tasty.QuickCheck
 import qualified VectorBuilder.Builder as A
 import qualified VectorBuilder.Vector as B
+import qualified VectorBuilder.Alternative as F
 import qualified Main.Sample as C
+import qualified Data.Attoparsec.Text as D
+import qualified Data.Vector as E
 
 
 main =
@@ -17,5 +20,13 @@
     testProperty "" $ \(samples :: [C.Sample Int]) ->
       foldMap C.toVector samples ===
       B.build (foldMap C.toBuilder samples)
+    ,
+    testCase "Alternative.some" $ assertEqual ""
+      (Right (E.fromList "1234"))
+      (D.parseOnly (F.some D.anyChar) "1234")
+    ,
+    testCase "Alternative.some on empty" $ assertEqual ""
+      (Left "not enough input")
+      (D.parseOnly (F.some D.anyChar) "")
   ]
 
diff --git a/tests/Main/Sample.hs b/tests/Main/Sample.hs
--- a/tests/Main/Sample.hs
+++ b/tests/Main/Sample.hs
@@ -1,9 +1,9 @@
 module Main.Sample where
 
-import Rebase.Prelude
+import Prelude
 import Test.QuickCheck.Instances
 import qualified VectorBuilder.Builder as A
-import qualified Rebase.Data.Vector as B
+import qualified Data.Vector as B
 import qualified Test.Tasty.QuickCheck as C
 
 
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.5
+  0.3.6
 synopsis:
   Vector builder
 description:
@@ -76,10 +76,10 @@
     VectorBuilder.Core.Update
     VectorBuilder.Core.Builder
   build-depends:
-    vector >= 0.11 && < 0.13,
-    semigroups >= 0.16 && < 0.20,
-    base-prelude < 2,
-    base >= 4.6 && < 5
+    vector >=0.11 && <0.13,
+    semigroups >=0.16 && <0.20,
+    base-prelude <2,
+    base >=4.6 && <5
 
 test-suite tests
   type:
@@ -95,62 +95,60 @@
   default-language:
     Haskell2010
   build-depends:
-    -- testing:
-    tasty >=0.12 && <0.13,
-    tasty-quickcheck >=0.9 && <0.10,
-    tasty-hunit >=0.9 && <0.10,
-    quickcheck-instances >=0.3.11 && <0.4,
+    attoparsec >=0.13 && <0.14,
     QuickCheck >=2.8.1 && <3,
-    -- 
-    vector-builder,
-    -- 
-    rebase
+    quickcheck-instances >=0.3.11 && <0.4,
+    rerebase ==1.*,
+    tasty >=1.0.1 && <1.2,
+    tasty-hunit >=0.10 && <0.11,
+    tasty-quickcheck >=0.10 && <0.11,
+    vector-builder
 
-benchmark foldl-benchmark
-  type:
-    exitcode-stdio-1.0
-  hs-source-dirs:
-    foldl-benchmark
-  main-is:
-    Main.hs
-  ghc-options:
-    -O2
-    -threaded
-    "-with-rtsopts=-N"
-    -rtsopts
-  default-extensions:
-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
-  default-language:
-    Haskell2010
-  build-depends:
-    vector-builder,
-    foldl == 1.2.*,
-    -- benchmarking:
-    criterion >= 1.1 && < 2,
-    -- general:
-    rerebase < 2
+-- benchmark foldl-benchmark
+--   type:
+--     exitcode-stdio-1.0
+--   hs-source-dirs:
+--     foldl-benchmark
+--   main-is:
+--     Main.hs
+--   ghc-options:
+--     -O2
+--     -threaded
+--     "-with-rtsopts=-N"
+--     -rtsopts
+--   default-extensions:
+--     Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
+--   default-language:
+--     Haskell2010
+--   build-depends:
+--     vector-builder,
+--     foldl >=1.2 && <2,
+--     -- benchmarking:
+--     criterion >=1.1 && <2,
+--     -- general:
+--     rerebase <2
 
-test-suite foldl-profiling
-  type:
-    exitcode-stdio-1.0
-  hs-source-dirs:
-    foldl-profiling
-  main-is:
-    Main.hs
-  ghc-options:
-    -O2
-    -threaded
-    "-with-rtsopts=-N"
-    -rtsopts
-  default-extensions:
-    Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
-  default-language:
-    Haskell2010
-  build-depends:
-    vector-builder,
-    foldl == 1.2.*,
-    -- benchmarking:
-    criterion >= 1.1 && < 2,
-    -- general:
-    bug == 1.*,
-    rerebase < 2
+-- test-suite foldl-profiling
+--   type:
+--     exitcode-stdio-1.0
+--   hs-source-dirs:
+--     foldl-profiling
+--   main-is:
+--     Main.hs
+--   ghc-options:
+--     -O2
+--     -threaded
+--     "-with-rtsopts=-N"
+--     -rtsopts
+--   default-extensions:
+--     Arrows, BangPatterns, ConstraintKinds, DataKinds, DefaultSignatures, DeriveDataTypeable, DeriveFoldable, DeriveFunctor, DeriveGeneric, DeriveTraversable, EmptyDataDecls, FlexibleContexts, FlexibleInstances, FunctionalDependencies, GADTs, GeneralizedNewtypeDeriving, LambdaCase, LiberalTypeSynonyms, MagicHash, MultiParamTypeClasses, MultiWayIf, NoImplicitPrelude, NoMonomorphismRestriction, OverloadedStrings, PatternGuards, ParallelListComp, QuasiQuotes, RankNTypes, RecordWildCards, ScopedTypeVariables, StandaloneDeriving, TemplateHaskell, TupleSections, TypeFamilies, TypeOperators, UnboxedTuples
+--   default-language:
+--     Haskell2010
+--   build-depends:
+--     vector-builder,
+--     foldl >=1.2 && <2,
+--     -- benchmarking:
+--     criterion >=1.1 && <2,
+--     -- general:
+--     bug ==1.*,
+--     rerebase <2
