diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,6 @@
+## 0.2.2
+* Fixed a bug in `Text.Show.Deriving`'s treatment of unlifted types
+
 ### 0.2.1
 * Added `Text.Show.Deriving`, which allows deriving `Show`, `Show1`, and `Show2` with TH.
 
diff --git a/deriving-compat.cabal b/deriving-compat.cabal
--- a/deriving-compat.cabal
+++ b/deriving-compat.cabal
@@ -1,5 +1,5 @@
 name:                deriving-compat
-version:             0.2.1
+version:             0.2.2
 synopsis:            Backports of GHC deriving extensions
 description:         Provides Template Haskell functions that mimic deriving
                      extensions that were introduced or modified in recent versions
@@ -63,10 +63,14 @@
   type:                git
   location:            https://github.com/haskell-compat/deriving-compat
 
-flag base-49
+flag base-4-9
   description:         Use base-4.9 or later.
   default:             True
 
+flag template-haskell-2-11
+  description:         Use template-haskell-2.11.0.0 or later.
+  default:             True
+
 flag new-functor-classes
   description:         Use a version of transformers or transformers-compat with a
                        modern-style Data.Functor.Classes module. This flag cannot be
@@ -87,15 +91,19 @@
                        Paths_deriving_compat
   build-depends:       containers          >= 0.1 && < 0.6
                      , ghc-prim
-                     , template-haskell    >= 2.5 && < 2.12
 
-  if flag(base-49)
+  if flag(base-4-9)
     build-depends:     base                >= 4.9 && < 5
-                     , ghc-boot-th
     cpp-options:       "-DNEW_FUNCTOR_CLASSES"
   else
     build-depends:     base                >= 4.3 && < 4.9
 
+  if flag(template-haskell-2-11)
+    build-depends:     template-haskell    >= 2.11 && < 2.12
+                     , ghc-boot-th
+  else
+    build-depends:     template-haskell    >= 2.5  && < 2.11
+
   if flag(new-functor-classes)
     build-depends:     transformers        (>= 0.2 && < 0.4) || >= 0.5
                      , transformers-compat >= 0.5
@@ -114,18 +122,18 @@
                        ShowSpec
   build-depends:       base-compat         >= 0.8.1 && < 1
                      , base-orphans        >= 0.5   && < 1
-                     , deriving-compat     == 0.2.1
+                     , deriving-compat     == 0.2.2
                      , hspec               >= 1.8
                      , QuickCheck          >= 2     && < 3
 
-  if flag(base-49)
+  if flag(base-4-9)
     build-depends:     base                >= 4.9 && < 5
     cpp-options:       "-DNEW_FUNCTOR_CLASSES"
   else
     build-depends:     base                >= 4.3 && < 4.9
 
   if flag(new-functor-classes)
-    build-depends:     transformers        (>= 0.2 && < 0.4) || >= 0.5
+    build-depends:     transformers        (>= 0.2 && < 0.4) || (>= 0.5 && < 0.6)
                      , transformers-compat >= 0.5
     cpp-options:       "-DNEW_FUNCTOR_CLASSES"
   else
diff --git a/src/Text/Show/Deriving/Internal.hs b/src/Text/Show/Deriving/Internal.hs
--- a/src/Text/Show/Deriving/Internal.hs
+++ b/src/Text/Show/Deriving/Internal.hs
@@ -508,7 +508,7 @@
                  hashE
       | otherwise = varE showsPrecValName
                       `appE` litE (integerL $ fromIntegral p)
-                      `appE` tyVarE
+                      `appE` (conE con `appE` tyVarE)
 
     oneHashE, twoHashE :: Q Exp
     oneHashE = varE showCharValName `appE` litE (charL '#')
