diff --git a/genvalidity-vector.cabal b/genvalidity-vector.cabal
--- a/genvalidity-vector.cabal
+++ b/genvalidity-vector.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: 8c2b20f13b1d0bf5cb941d2339fac8c9fd3d8803fd78c437230a0895c3373cd5
+-- hash: f6753b8808975e61506cc53f0d51d44761ddaa5855e4203963bc47761729143d
 
 name:           genvalidity-vector
-version:        0.2.0.2
+version:        0.2.0.3
 synopsis:       GenValidity support for vector
 description:    Please see README.md
 category:       Testing
@@ -25,6 +25,10 @@
   location: https://github.com/NorfairKing/validity
 
 library
+  exposed-modules:
+      Data.GenValidity.Vector
+  other-modules:
+      Paths_genvalidity_vector
   hs-source-dirs:
       src
   build-depends:
@@ -34,15 +38,14 @@
     , validity >=0.5
     , validity-vector >=0.1
     , vector
-  exposed-modules:
-      Data.GenValidity.Vector
-  other-modules:
-      Paths_genvalidity_vector
   default-language: Haskell2010
 
 test-suite genvalidity-vector-test
   type: exitcode-stdio-1.0
   main-is: Spec.hs
+  other-modules:
+      Test.Validity.VectorSpec
+      Paths_genvalidity_vector
   hs-source-dirs:
       test/
   ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
@@ -53,7 +56,4 @@
     , genvalidity-vector
     , hspec
     , vector
-  other-modules:
-      Test.Validity.VectorSpec
-      Paths_genvalidity_vector
   default-language: Haskell2010
diff --git a/src/Data/GenValidity/Vector.hs b/src/Data/GenValidity/Vector.hs
--- a/src/Data/GenValidity/Vector.hs
+++ b/src/Data/GenValidity/Vector.hs
@@ -8,15 +8,22 @@
 import Data.GenValidity
 import Data.Validity.Vector ()
 
-import Data.Vector (Vector)
 import qualified Data.Vector as V
+import qualified Data.Vector.Storable as SV
 
-instance GenUnchecked v => GenUnchecked (Vector v) where
+instance GenUnchecked v => GenUnchecked (V.Vector v) where
     genUnchecked = V.fromList <$> genUnchecked
     shrinkUnchecked = fmap V.fromList . shrinkUnchecked . V.toList
 
-instance GenValid v => GenValid (Vector v) where
+instance GenValid v => GenValid (V.Vector v) where
     genValid = V.fromList <$> genValid
 
-instance GenInvalid v => GenInvalid (Vector v) where
+instance GenInvalid v => GenInvalid (V.Vector v) where
     genInvalid = V.fromList <$> genInvalid
+
+instance (SV.Storable e, GenUnchecked e) => GenUnchecked (SV.Vector e) where
+    genUnchecked = SV.fromList <$> genUnchecked
+    shrinkUnchecked = fmap SV.fromList . shrinkUnchecked . SV.toList
+
+instance (SV.Storable e, GenValid e) => GenValid (SV.Vector e) where
+    genValid = SV.fromList <$> genValid
diff --git a/test/Test/Validity/VectorSpec.hs b/test/Test/Validity/VectorSpec.hs
--- a/test/Test/Validity/VectorSpec.hs
+++ b/test/Test/Validity/VectorSpec.hs
@@ -5,10 +5,12 @@
 import Test.Hspec
 
 import Data.GenValidity.Vector ()
-import Data.Vector (Vector)
+import qualified Data.Vector as V
+import qualified Data.Vector.Storable as SV
 import Test.Validity.GenValidity
 
 spec :: Spec
 spec = do
-    genValidSpec @(Vector Int)
-    genValiditySpec @(Vector Double)
+    genValidSpec @(V.Vector Int)
+    genValiditySpec @(V.Vector Rational)
+    genValidSpec @(SV.Vector Int)
