diff --git a/Database/Persist/TH.hs b/Database/Persist/TH.hs
--- a/Database/Persist/TH.hs
+++ b/Database/Persist/TH.hs
@@ -649,7 +649,10 @@
       |]
 
     keyStringL = StringL . keyString
-    genericInstances =
+    -- ghc 7.6 cannot parse the left arrow Ident $() <- lexP
+    keyPattern = BindS (ConP 'Ident [LitP $ keyStringL t])
+
+    genericInstances = [|lexP|] >>= \lexPE ->
       -- truly unfortunate that TH doesn't support standalone deriving
       -- https://ghc.haskell.org/trac/ghc/ticket/8100
       [d|instance Show (BackendKey $(pure backendT)) => Show (Key $(pure recordType)) where
@@ -659,7 +662,7 @@
               where app_prec = (10::Int)
          instance Read (BackendKey $(pure backendT)) => Read (Key $(pure recordType)) where
             readPrec = parens $ (prec app_prec $ do
-                                  Ident $(pure $ LitP $ keyStringL t) <- lexP
+                                  $(pure $ DoE [keyPattern lexPE])
                                   m <- step readPrec
                                   return ($(pure $ ConE $ keyConName t) m))
               where app_prec = (10::Int)
diff --git a/persistent-template.cabal b/persistent-template.cabal
--- a/persistent-template.cabal
+++ b/persistent-template.cabal
@@ -1,5 +1,5 @@
 name:            persistent-template
-version:         2.0.0.1
+version:         2.0.0.2
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
