diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+### 3.6.3 [2018.03.15]
+* GHC 8.4 fixes
+
 ### 3.6.2 [2017.06.18]
 * Require `QuickCheck-2.10`/`quickcheck-instances-0.13.6` or later
 
diff --git a/src/TextShow/Language/Haskell/TH.hs b/src/TextShow/Language/Haskell/TH.hs
--- a/src/TextShow/Language/Haskell/TH.hs
+++ b/src/TextShow/Language/Haskell/TH.hs
@@ -109,8 +109,10 @@
 $(deriveTextShow ''Dec)
 -- | /Since: 2/
 $(deriveTextShow ''Exp)
+#if !(MIN_VERSION_template_haskell(2,13,0))
 -- | /Since: 2/
 $(deriveTextShow ''FamFlavour)
+#endif
 -- | /Since: 2/
 $(deriveTextShow ''Fixity)
 -- | /Since: 2/
diff --git a/tests/Instances/Data/Vector.hs b/tests/Instances/Data/Vector.hs
new file mode 100644
--- /dev/null
+++ b/tests/Instances/Data/Vector.hs
@@ -0,0 +1,42 @@
+{-# LANGUAGE CPP                #-}
+{-# LANGUAGE DeriveGeneric      #-}
+{-# LANGUAGE StandaloneDeriving #-}
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-|
+Module:      Instances.Data.Vector
+Copyright:   (C) 2014-2017 Ryan Scott
+License:     BSD-style (see the file LICENSE)
+Maintainer:  Ryan Scott
+Stability:   Provisional
+Portability: GHC
+
+Provides 'Arbitrary' instances for 'Vector' types.
+-}
+module Instances.Data.Vector () where
+
+#if MIN_VERSION_vector(0,11,0)
+import           Data.Vector.Fusion.Bundle.Size (Size(..))
+#else
+import           Data.Vector.Fusion.Stream.Size (Size(..))
+#endif
+import           Data.Vector.Generic (fromList)
+import qualified Data.Vector.Primitive as P (Vector)
+import           Data.Vector.Primitive (Prim)
+
+import           GHC.Generics (Generic)
+
+import           Instances.Utils.GenericArbitrary (genericArbitrary)
+
+import           Prelude ()
+import           Prelude.Compat
+
+import           Test.QuickCheck (Arbitrary(..))
+import           Test.QuickCheck.Instances ()
+
+instance (Arbitrary a, Prim a) => Arbitrary (P.Vector a) where
+    arbitrary = fromList <$> arbitrary
+
+instance Arbitrary Size where
+    arbitrary = genericArbitrary
+
+deriving instance Generic Size
diff --git a/tests/Instances/Language/Haskell/TH.hs b/tests/Instances/Language/Haskell/TH.hs
--- a/tests/Instances/Language/Haskell/TH.hs
+++ b/tests/Instances/Language/Haskell/TH.hs
@@ -211,6 +211,9 @@
                       , pure $ AppTypeE fExp fType
                       , UnboxedSumE fExp <$> arbitrary <*> arbitrary
 #endif
+#if MIN_VERSION_template_haskell(2,13,0)
+                      , LabelE <$> arbitrary
+#endif
                       ]
 --     arbitrary = oneof [ VarE        <$> arbitrary
 --                       , ConE        <$> arbitrary
@@ -241,10 +244,12 @@
 -- #endif
 --                       ]
 
+#if !(MIN_VERSION_template_haskell(2,13,0))
 deriving instance Bounded FamFlavour
 deriving instance Enum FamFlavour
 instance Arbitrary FamFlavour where
     arbitrary = arbitraryBoundedEnum
+#endif
 
 instance Arbitrary Fixity where
     arbitrary = genericArbitrary
diff --git a/tests/Spec/Data/VectorSpec.hs b/tests/Spec/Data/VectorSpec.hs
new file mode 100644
--- /dev/null
+++ b/tests/Spec/Data/VectorSpec.hs
@@ -0,0 +1,56 @@
+{-# LANGUAGE CPP #-}
+
+{-|
+Module:      Spec.Data.VectorSpec
+Copyright:   (C) 2014-2017 Ryan Scott
+License:     BSD-style (see the file LICENSE)
+Maintainer:  Ryan Scott
+Stability:   Provisional
+Portability: GHC
+
+@hspec@ tests for 'Vector' types.
+-}
+module Spec.Data.VectorSpec (main, spec) where
+
+import           Data.Proxy (Proxy(..))
+import qualified Data.Vector as B (Vector)
+#if MIN_VERSION_vector(0,11,0)
+import           Data.Vector.Fusion.Bundle.Size (Size)
+#else
+import           Data.Vector.Fusion.Stream.Size (Size)
+#endif
+import qualified Data.Vector.Primitive as P (Vector)
+import qualified Data.Vector.Storable as S (Vector)
+import qualified Data.Vector.Unboxed as U (Vector)
+
+import           Instances.Data.Vector ()
+
+import           Spec.Utils (matchesTextShowSpec)
+#if MIN_VERSION_base(4,9,0) && MIN_VERSION_vector(0,12,0)
+import           Spec.Utils (matchesTextShow1Spec)
+#endif
+
+import           Test.Hspec (Spec, describe, hspec, parallel)
+
+import           TextShow.Data.Vector ()
+
+main :: IO ()
+main = hspec spec
+
+spec :: Spec
+spec = parallel $ do
+    describe "(boxed) Vector Char" $ do
+        let p :: Proxy (B.Vector Char)
+            p = Proxy
+        matchesTextShowSpec  p
+#if MIN_VERSION_base(4,9,0) && MIN_VERSION_vector(0,12,0)
+        matchesTextShow1Spec p
+#endif
+    describe "(primitive) Vector Char" $
+        matchesTextShowSpec (Proxy :: Proxy (P.Vector Char))
+    describe "(storable) Vector Char" $
+        matchesTextShowSpec (Proxy :: Proxy (S.Vector Char))
+    describe "(unboxed) Vector Char" $
+        matchesTextShowSpec (Proxy :: Proxy (U.Vector Char))
+    describe "Size" $
+        matchesTextShowSpec (Proxy :: Proxy Size)
diff --git a/tests/Spec/Language/Haskell/THSpec.hs b/tests/Spec/Language/Haskell/THSpec.hs
--- a/tests/Spec/Language/Haskell/THSpec.hs
+++ b/tests/Spec/Language/Haskell/THSpec.hs
@@ -65,8 +65,10 @@
         matchesTextShowSpec (Proxy :: Proxy Doc)
     describe "Exp" $
         matchesTextShowSpec (Proxy :: Proxy Exp)
+#if !(MIN_VERSION_template_haskell(2,13,0))
     describe "FamFlavour" $
         matchesTextShowSpec (Proxy :: Proxy FamFlavour)
+#endif
 #if MIN_VERSION_template_haskell(2,11,0)
     describe "FamilyResultSig" $
         matchesTextShowSpec (Proxy :: Proxy FamilyResultSig)
diff --git a/text-show-instances.cabal b/text-show-instances.cabal
--- a/text-show-instances.cabal
+++ b/text-show-instances.cabal
@@ -1,5 +1,5 @@
 name:                text-show-instances
-version:             3.6.2
+version:             3.6.3
 synopsis:            Additional instances for text-show
 description:         @text-show-instances@ is a supplemental library to @text-show@
                      that provides additional @Show@ instances for data types in
@@ -70,6 +70,8 @@
                    , GHC == 7.8.4
                    , GHC == 7.10.3
                    , GHC == 8.0.2
+                   , GHC == 8.2.2
+                   , GHC == 8.4.1
 extra-source-files:  CHANGELOG.md, README.md
 cabal-version:       >=1.10
 
@@ -167,8 +169,8 @@
     build-depends:     base                >= 4.5 && < 4.9
 
   if flag(template-haskell-2-11)
-    build-depends:     template-haskell    >= 2.11 && < 2.13
-                     , ghc-boot-th         >= 8.0  && < 8.3
+    build-depends:     template-haskell    >= 2.11 && < 2.15
+                     , ghc-boot-th         >= 8.0  && < 8.5
   else
     build-depends:     template-haskell    >= 2.7  && < 2.11
 
@@ -195,6 +197,7 @@
                        Instances.Data.Binary
                        Instances.Data.Containers
                        Instances.Data.Functor.Trans
+                       Instances.Data.Vector
                        Instances.Language.Haskell.TH
                        Instances.Miscellaneous
                        Instances.System.Console.Haskeline
@@ -230,6 +233,7 @@
                        Spec.Data.BinarySpec
                        Spec.Data.ContainersSpec
                        Spec.Data.Functor.TransSpec
+                       Spec.Data.VectorSpec
                        Spec.Data.TaggedSpec
                        Spec.Data.TimeSpec
                        Spec.Data.UnorderedContainersSpec
@@ -272,7 +276,7 @@
                      , old-time             >= 1      && < 1.2
                      , pretty               >= 1      && < 1.2
                      , process              >= 1      && < 1.7
-                     , QuickCheck           >= 2.10   && < 2.11
+                     , QuickCheck           >= 2.10   && < 2.12
                      , quickcheck-instances >= 0.3.16 && < 0.4
                      , random               >= 1.0.1  && < 1.2
                      , semigroups           >= 0.17   && < 1
@@ -284,6 +288,7 @@
                      , unordered-containers >= 0.2    && < 0.3
                      , vector               >= 0.9    && < 0.13
                      , xhtml                >= 3000.2 && < 3000.3
+  build-tool-depends:  hspec-discover:hspec-discover
 
   if flag(base-4-9)
     build-depends:     base                >= 4.9 && < 5
@@ -292,8 +297,8 @@
     build-depends:     base                >= 4.5 && < 4.9
 
   if flag(template-haskell-2-11)
-    build-depends:     template-haskell    >= 2.11 && < 2.13
-                     , ghc-boot-th         >= 8.0  && < 8.3
+    build-depends:     template-haskell    >= 2.11 && < 2.15
+                     , ghc-boot-th         >= 8.0  && < 8.5
   else
     build-depends:     template-haskell    >= 2.7  && < 2.11
 
