diff --git a/library/VectorBuilder/MVector.hs b/library/VectorBuilder/MVector.hs
--- a/library/VectorBuilder/MVector.hs
+++ b/library/VectorBuilder/MVector.hs
@@ -12,6 +12,8 @@
 
 -- |
 -- Construct a mutable vector from a builder.
+-- 
+-- Supports all kinds of vectors: boxed, unboxed, primitive, storable.
 {-# INLINABLE build #-}
 build :: MVector vector element => A.Builder element -> ST s (vector s element)
 build (A.Builder (B.SizeTrackingAction sizeTrackingActionFn)) =
diff --git a/library/VectorBuilder/Private/Builder.hs b/library/VectorBuilder/Private/Builder.hs
--- a/library/VectorBuilder/Private/Builder.hs
+++ b/library/VectorBuilder/Private/Builder.hs
@@ -3,7 +3,7 @@
 
 import VectorBuilder.Private.Prelude
 import qualified VectorBuilder.Private.SizeTrackingAction as A
-import qualified Data.Vector as B
+import qualified Data.Vector.Generic as B
 
 
 -- |
@@ -43,8 +43,10 @@
   Builder (A.snoc element)
 
 -- |
--- Builder from a vector of elements.
-vector :: B.Vector element -> Builder element
+-- Builder from an immutable vector of elements.
+-- 
+-- Supports all kinds of vectors: boxed, unboxed, primitive, storable.
+vector :: B.Vector vector element => vector element -> Builder element
 vector vector =
   Builder (A.append vector)
 
diff --git a/library/VectorBuilder/Private/SizeTrackingAction.hs b/library/VectorBuilder/Private/SizeTrackingAction.hs
--- a/library/VectorBuilder/Private/SizeTrackingAction.hs
+++ b/library/VectorBuilder/Private/SizeTrackingAction.hs
@@ -2,8 +2,7 @@
 where
 
 import VectorBuilder.Private.Prelude
-import qualified Data.Vector.Mutable as A
-import qualified Data.Vector as B
+import qualified Data.Vector.Generic as B
 import qualified VectorBuilder.Private.Action as C
 
 
@@ -28,7 +27,7 @@
 snoc element =
   SizeTrackingAction (\size -> (C.unsafeWrite size element, succ size))
 
-append :: B.Vector element -> SizeTrackingAction element ()
+append :: B.Vector vector element => vector element -> SizeTrackingAction element ()
 append appendedVector =
   SizeTrackingAction ((,) <$> action <*> size)
   where
diff --git a/library/VectorBuilder/Vector.hs b/library/VectorBuilder/Vector.hs
--- a/library/VectorBuilder/Vector.hs
+++ b/library/VectorBuilder/Vector.hs
@@ -10,7 +10,9 @@
 
 
 -- |
--- Construct a vector from a builder.
+-- Construct an immutable vector from a builder.
+-- 
+-- Supports all kinds of vectors: boxed, unboxed, primitive, storable.
 {-# INLINE build #-}
 build :: Vector vector element => A.Builder element -> vector element
 build builder =
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.2
+  0.3
 synopsis:
   Vector builder
 description:
