diff --git a/CHANGELOG.markdown b/CHANGELOG.markdown
--- a/CHANGELOG.markdown
+++ b/CHANGELOG.markdown
@@ -1,3 +1,7 @@
+0.8.8 [2023.08.08]
+------------------
+* Allow building with GHC 9.8.
+
 0.8.7 [2023.02.18]
 ------------------
 * Define `Foldable1` and `Bifoldable1` instances for `Tagged`. These instances
diff --git a/src/Data/Proxy/TH.hs b/src/Data/Proxy/TH.hs
--- a/src/Data/Proxy/TH.hs
+++ b/src/Data/Proxy/TH.hs
@@ -59,12 +59,12 @@
   mkProxy :: (TypeQ -> r) -> String -> r
   mkProxy p s = case ts of
     [h@(t:_)]
-       | isUpper t -> p $ head <$> cons
+       | isUpper t -> p $ conT $ mkName h
        | otherwise -> p $ varT $ mkName h
 #if MIN_VERSION_template_haskell(2,8,0)
     _ -> p $ mkList <$> cons
 #endif
-    where 
+    where
       ts = map strip $ splitOn ',' s
       cons = mapM (conT . mkName) ts
 #if MIN_VERSION_template_haskell(2,8,0)
@@ -82,7 +82,7 @@
 pr1 = QuasiQuoter (mkProxy proxyExpQ) (mkProxy proxyPatQ) (mkProxy proxyTypeQ) undefined where
   sing x = AppT (AppT PromotedConsT x) PromotedNilT
   mkProxy p s = case s of
-    t:_ 
+    t:_
       | isUpper t -> p (fmap sing (conT $ mkName s))
       | otherwise -> p (fmap sing (varT $ mkName s))
     _ -> error "Empty string passed to pr1"
@@ -94,7 +94,7 @@
   go [] = []
   go xs = case t of
       [] -> [h]
-      (_:t') -> h : go t' 
+      (_:t') -> h : go t'
     where (h,t) = break (== d) xs
 
 -- | Remove white space from both ends of a 'String'.
diff --git a/tagged.cabal b/tagged.cabal
--- a/tagged.cabal
+++ b/tagged.cabal
@@ -1,5 +1,5 @@
 name:           tagged
-version:        0.8.7
+version:        0.8.8
 license:        BSD3
 license-file:   LICENSE
 author:         Edward A. Kmett
@@ -27,9 +27,9 @@
              , GHC == 8.8.4
              , GHC == 8.10.7
              , GHC == 9.0.2
-             , GHC == 9.2.5
-             , GHC == 9.4.4
-             , GHC == 9.6.1
+             , GHC == 9.2.8
+             , GHC == 9.4.5
+             , GHC == 9.6.2
 
 source-repository head
   type: git
@@ -78,10 +78,10 @@
 
   if impl(ghc>=7.6)
     exposed-modules: Data.Proxy.TH
-    build-depends: template-haskell >= 2.8 && < 2.21
+    build-depends: template-haskell >= 2.8 && < 2.22
 
   if flag(deepseq)
-    build-depends: deepseq >= 1.1 && < 1.5
+    build-depends: deepseq >= 1.1 && < 1.6
 
   if flag(transformers)
     build-depends: transformers        >= 0.2 && < 0.7
