diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,8 @@
 # Change Log
 
+## [0.3.3.0] - 2016-08-10
+- Add instances for Data, Typeable and Generic
+
 ## [0.3.2.0] - 2016-03-29
 - Add overlapping Monoid instance for zero length vectors
 
diff --git a/src/Data/Vector/Generic/Sized.hs b/src/Data/Vector/Generic/Sized.hs
--- a/src/Data/Vector/Generic/Sized.hs
+++ b/src/Data/Vector/Generic/Sized.hs
@@ -1,6 +1,8 @@
 {-# LANGUAGE DataKinds #-}
+{-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE FlexibleContexts #-}
 {-# LANGUAGE FlexibleInstances #-}
+{-# LANGUAGE DeriveGeneric #-}
 {-# LANGUAGE DeriveTraversable #-}
 {-# LANGUAGE GeneralizedNewtypeDeriving #-}
 {-# LANGUAGE KindSignatures #-}
@@ -220,10 +222,12 @@
 
 import qualified Data.Vector.Generic as VG
 import qualified Data.Vector as Boxed
+import GHC.Generics (Generic)
 import GHC.TypeLits
 import Data.Proxy
 import Control.DeepSeq (NFData)
 import Foreign.Storable
+import Data.Data
 import Foreign.Ptr (castPtr)
 import Prelude hiding ( length, null,
                         replicate, (++), concat,
@@ -242,7 +246,9 @@
 
 -- | A wrapper to tag vectors with a type level length.
 newtype Vector v (n :: Nat) a = Vector (v a)
-  deriving (Show, Eq, Ord, Functor, Foldable, Traversable, NFData)
+  deriving ( Show, Eq, Ord, Functor, Foldable, Traversable, NFData, Generic
+           , Data, Typeable
+           )
 
 -- | Any sized vector containing storable elements is itself storable.
 instance (KnownNat n, Storable a, VG.Vector v a)
diff --git a/vector-sized.cabal b/vector-sized.cabal
--- a/vector-sized.cabal
+++ b/vector-sized.cabal
@@ -1,5 +1,5 @@
 name:                vector-sized
-version:             0.3.2.0
+version:             0.3.3.0
 synopsis:            Size tagged vectors
 description:         Please see README.md
 homepage:            http://github.com/expipiplus1/vector-sized#readme
