diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,15 +1,14 @@
-## 2.1.8.1
-
-* fix a bad Eq instance /= definition for Key when mpsGenetric=True
-
-## 2.1.7
+## 2.5
 
-* Support for GHC 8 [#556](https://github.com/yesodweb/persistent/issues/556)
+* read/write typeclass split
 
 ## 2.1.6
 
 * aeson 0.11
 * transformers 0.5
+## 2.1.4
+
+support http-api-data for url serialization
 
 ## 2.1.3.3
 
diff --git a/Database/Persist/TH.hs b/Database/Persist/TH.hs
--- a/Database/Persist/TH.hs
+++ b/Database/Persist/TH.hs
@@ -45,6 +45,7 @@
 
 import Prelude hiding ((++), take, concat, splitAt, exp)
 import Database.Persist
+import Database.Persist.Class (HasPersistBackend(..), BaseBackend)
 import Database.Persist.Sql (Migration, migrate, SqlBackend, PersistFieldSql)
 import Database.Persist.Quasi
 import Language.Haskell.TH.Lib (
@@ -766,6 +767,9 @@
                 x == y =
                     ($(return unKeyE) x) ==
                     ($(return unKeyE) y)
+                x /= y =
+                    ($(return unKeyE) x) ==
+                    ($(return unKeyE) y)
              instance Ord (BackendKey $(pure backendT)) => Ord (Key $(pure recordType)) where
                 compare x y = compare
                     ($(return unKeyE) x)
@@ -962,7 +966,7 @@
        dtd : mconcat fkc `mappend`
       ([ TySynD (keyIdName t) [] $
             ConT ''Key `AppT` ConT (mkName nameS)
-      , instanceD instanceConstraint clazz $
+      , InstanceD instanceConstraint clazz $
         [ uniqueTypeDec mps t
         , keyTypeDec
         , keyToValues'
@@ -1204,9 +1208,9 @@
         let entityT = genericDataType mps name backendT
 
         return $
-            instanceD
+            InstanceD
             [ mkClassP ''PersistQuery [backendT]
-            , mkEqualP (ConT ''PersistEntityBackend `AppT` entityT) backendT
+            , mkEqualP (ConT ''PersistEntityBackend `AppT` entityT) (ConT ''BaseBackend `AppT` backendT)
             ]
             (ConT ''DeleteCascade `AppT` entityT `AppT` backendT)
             [ FunD 'deleteCascade
@@ -1248,7 +1252,7 @@
               -> Bool -- ^ include PersistStore backend constraint
               -> Type -> [Dec] -> Dec
 typeInstanceD clazz hasBackend typ =
-    instanceD ctx (ConT clazz `AppT` typ)
+    InstanceD ctx (ConT clazz `AppT` typ)
   where
     ctx
         | hasBackend = [mkClassP ''PersistStore [backendT]]
@@ -1596,12 +1600,6 @@
 isStrict = IsStrict
 #endif
 
-instanceD :: Cxt -> Type -> [Dec] -> Dec
-#if MIN_VERSION_template_haskell(2,11,0)
-instanceD = InstanceD Nothing
-#else
-instanceD = InstanceD
-#endif
 
 -- entityUpdates :: EntityDef -> [(HaskellName, FieldType, IsNullable, PersistUpdate)]
 -- entityUpdates =
@@ -1633,4 +1631,3 @@
 --         let x = mkName "x"
 --          in normalClause [ConP (mkName constr) [VarP x]]
 --                    (VarE 'toPersistValue `AppE` VarE x)
-
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.1.8.1
+version:         2.5
 license:         MIT
 license-file:    LICENSE
 author:          Michael Snoyman <michael@snoyman.com>
@@ -17,14 +17,14 @@
 library
     build-depends:   base                     >= 4.6         && < 5
                    , template-haskell
-                   , persistent               >= 2.2.2     && < 3
+                   , persistent               >= 2.5       && < 3
                    , monad-control            >= 0.2       && < 1.1
                    , bytestring               >= 0.9
                    , text                     >= 0.5
                    , transformers             >= 0.2       && < 0.6
                    , containers
                    , aeson                    >= 0.7       && < 0.12
-                   , aeson-compat             >= 0.3.0.0   && < 0.4
+                   , aeson-compat             >= 0.3.2.0   && < 0.4
                    , monad-logger
                    , unordered-containers
                    , tagged
