diff --git a/genvalidity-vector.cabal b/genvalidity-vector.cabal
--- a/genvalidity-vector.cabal
+++ b/genvalidity-vector.cabal
@@ -1,11 +1,13 @@
--- This file has been generated from package.yaml by hpack version 0.28.2.
+cabal-version: 1.12
+
+-- This file has been generated from package.yaml by hpack version 0.31.1.
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: f6753b8808975e61506cc53f0d51d44761ddaa5855e4203963bc47761729143d
+-- hash: 687fa86db99872cb21aa22b8c49a3e5f854d36a959ca19e203204a8077471ff0
 
 name:           genvalidity-vector
-version:        0.2.0.3
+version:        0.3.0.0
 synopsis:       GenValidity support for vector
 description:    Please see README.md
 category:       Testing
@@ -18,7 +20,6 @@
 license:        MIT
 license-file:   LICENSE
 build-type:     Simple
-cabal-version:  >= 1.10
 
 source-repository head
   type: git
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
@@ -17,9 +17,11 @@
 
 instance GenValid v => GenValid (V.Vector v) where
     genValid = V.fromList <$> genValid
+    shrinkValid = fmap V.fromList . shrinkValid . V.toList
 
-instance GenInvalid v => GenInvalid (V.Vector v) where
+instance (GenUnchecked v, GenInvalid v) => GenInvalid (V.Vector v) where
     genInvalid = V.fromList <$> genInvalid
+    shrinkInvalid = fmap V.fromList . shrinkInvalid . V.toList
 
 instance (SV.Storable e, GenUnchecked e) => GenUnchecked (SV.Vector e) where
     genUnchecked = SV.fromList <$> genUnchecked
@@ -27,3 +29,4 @@
 
 instance (SV.Storable e, GenValid e) => GenValid (SV.Vector e) where
     genValid = SV.fromList <$> genValid
+    shrinkValid = fmap SV.fromList . shrinkValid . SV.toList
