diff --git a/Web/Routes/TH.hs b/Web/Routes/TH.hs
--- a/Web/Routes/TH.hs
+++ b/Web/Routes/TH.hs
@@ -12,6 +12,7 @@
 import Data.List                     (intercalate, foldl')
 import Data.List.Split               (split, dropInitBlank, keepDelimsL, whenElt)
 import Data.Text                     (pack, unpack)
+import Data.Typeable                 (typeOf)
 import Language.Haskell.TH
 import Language.Haskell.TH.Syntax    (nameBase)
 import Text.ParserCombinators.Parsec ((<|>),many1)
@@ -89,6 +90,7 @@
          case info of
            TyConI (DataD cx _ keys _ cs _)    -> return $ Tagged (map conInfo cs) cx $ map conv keys
            TyConI (NewtypeD cx _ keys _ con _)-> return $ Tagged [conInfo con] cx $ map conv keys
+           _ -> error ("Unexpected " <> show (typeOf info) <> ": " <> show info)
     where conInfo (NormalC n args) = (n, length args)
           conInfo (RecC n args) = (n, length args)
           conInfo (InfixC _ n _) = (n, 2)
diff --git a/web-routes-th.cabal b/web-routes-th.cabal
--- a/web-routes-th.cabal
+++ b/web-routes-th.cabal
@@ -1,5 +1,5 @@
 Name:             web-routes-th
-Version:          0.22.7
+Version:          0.22.8.1
 License:          BSD3
 License-File:     LICENSE
 Author:           jeremy@seereason.com
@@ -12,7 +12,7 @@
                   Template Haskell.
 Cabal-Version:    >= 1.10
 Build-type:       Simple
-tested-with:      GHC==8.0.2, GHC==8.2.2, GHC==8.4.1, GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.2, GHC==9.2.2
+tested-with:      GHC==8.4.1, GHC==8.6.5, GHC==8.8.4, GHC==8.10.7, GHC==9.0.2, GHC==9.2.5, GHC==9.4.2
 
 source-repository head
     type:     git
@@ -24,7 +24,7 @@
   main-is          : Test.hs
   hs-source-dirs   : test
   build-depends    : base  >= 4.9 && < 5,
-                     hspec >= 2.2 && < 2.10,
+                     hspec >= 2.2 && < 2.11,
                      HUnit,
                      QuickCheck,
                      web-routes >= 0.27 && < 0.28,
@@ -34,7 +34,7 @@
         Default-Language: Haskell2010
         Build-Depends:    base       >= 4.9 && < 5,
                           parsec     >= 2 && < 4,
-                          template-haskell >= 2.11 && < 2.19,
+                          template-haskell >= 2.11 && < 2.20,
                           text       >= 0.11 && < 2.1,
                           split      >= 0.2  && < 0.3,
                           web-routes >= 0.26 && < 0.28
