diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,7 @@
+0.3.32
+
+* Add instances for primitive vectors
+
 0.3.31
 
 * Support GHC-8.6.5...GHC-9.10.1
diff --git a/quickcheck-instances.cabal b/quickcheck-instances.cabal
--- a/quickcheck-instances.cabal
+++ b/quickcheck-instances.cabal
@@ -1,6 +1,6 @@
 cabal-version:      2.2
 name:               quickcheck-instances
-version:            0.3.31
+version:            0.3.32
 synopsis:           Common quickcheck instances
 description:
   QuickCheck instances.
@@ -80,7 +80,7 @@
   hs-source-dirs:     src
   build-depends:
     , base        >=4.12.0.0 && <4.21
-    , QuickCheck  >=2.14.2   && <2.15.0
+    , QuickCheck  >=2.14.2   && <2.15.1
     , splitmix    >=0.1.0.5  && <0.2
 
   build-depends:
@@ -89,7 +89,7 @@
     , case-insensitive      >=1.2.0.11 && <1.3
     , containers            >=0.6.0.1  && <0.8
     , data-fix              >=0.3      && <0.4
-    , hashable              >=1.4.4.0  && <1.5
+    , hashable              >=1.4.4.0  && <1.6
     , integer-logarithms    >=1.0.3.1   && <1.1
     , old-time              >=1.1.0.0  && <1.2
     , OneTuple              >=0.4.2    && <0.5
diff --git a/src/Test/QuickCheck/Instances/Vector.hs b/src/Test/QuickCheck/Instances/Vector.hs
--- a/src/Test/QuickCheck/Instances/Vector.hs
+++ b/src/Test/QuickCheck/Instances/Vector.hs
@@ -7,10 +7,11 @@
 import Test.QuickCheck
 import Test.QuickCheck.Function ((:->))
 
-import qualified Data.Vector          as Vector
-import qualified Data.Vector.Generic  as GVector
-import qualified Data.Vector.Storable as SVector
-import qualified Data.Vector.Unboxed  as UVector
+import qualified Data.Vector           as Vector
+import qualified Data.Vector.Generic   as GVector
+import qualified Data.Vector.Primitive as PVector
+import qualified Data.Vector.Storable  as SVector
+import qualified Data.Vector.Unboxed   as UVector
 
 -------------------------------------------------------------------------------
 -- vector
@@ -49,6 +50,19 @@
     coarbitrary = coarbitraryVector
 
 instance (UVector.Unbox a, Function a) => Function (UVector.Vector a) where
+    function = functionVector
+
+-- | @since 0.3.32
+instance (PVector.Prim a, Arbitrary a) => Arbitrary (PVector.Vector a) where
+    arbitrary = arbitraryVector
+    shrink = shrinkVector
+
+-- | @since 0.3.32
+instance (PVector.Prim a, CoArbitrary a) => CoArbitrary (PVector.Vector a) where
+    coarbitrary = coarbitraryVector
+
+-- | @since 0.3.32
+instance (PVector.Prim a, Function a) => Function (PVector.Vector a) where
     function = functionVector
 
 arbitraryVector :: (GVector.Vector v a, Arbitrary a) => Gen (v a)
