diff --git a/multirec.cabal b/multirec.cabal
--- a/multirec.cabal
+++ b/multirec.cabal
@@ -1,5 +1,5 @@
 name:                 multirec
-version:              0.7.4
+version:              0.7.5
 license:              BSD3
 license-file:         LICENSE
 author:               Alexey Rodriguez,
@@ -81,4 +81,4 @@
                       Generics.MultiRec.TEq
 
   build-depends:      base >= 3.0 && < 5,
-                      template-haskell >= 2.4 && < 2.10
+                      template-haskell >= 2.4 && < 3
diff --git a/src/Generics/MultiRec/TH.hs b/src/Generics/MultiRec/TH.hs
--- a/src/Generics/MultiRec/TH.hs
+++ b/src/Generics/MultiRec/TH.hs
@@ -151,7 +151,12 @@
     extractFrom _                 = []
 
     extractEq :: Pred -> [Name]
-    extractEq (EqualP t1 t2) = filter (\ p -> p `elem` ps) (extractArgs t1 ++ extractArgs t2)
+#if __GLASGOW_HASKELL__ > 708
+    extractEq (EqualityT `AppT` t1 `AppT` t2) =
+#else
+    extractEq (EqualP t1 t2) =
+#endif
+      filter (\ p -> p `elem` ps) (extractArgs t1 ++ extractArgs t2)
     extractEq _              = []
 
     extractArgs :: Type -> [Name]
