diff --git a/instant-generics.cabal b/instant-generics.cabal
--- a/instant-generics.cabal
+++ b/instant-generics.cabal
@@ -1,7 +1,7 @@
 category:               Generics
 copyright:              (c) 2011 Universiteit Utrecht, 2012 University of Oxford
 name:                   instant-generics
-version:                0.4
+version:                0.4.1
 license:                BSD3
 license-file:           LICENSE
 author:                 José Pedro Magalhães
diff --git a/src/Generics/Instant/TH.hs b/src/Generics/Instant/TH.hs
--- a/src/Generics/Instant/TH.hs
+++ b/src/Generics/Instant/TH.hs
@@ -213,7 +213,12 @@
   liftM (:[]) $
     instanceD (cxt [])
       (conT ''Representable `appT` typ t)
-        [ tySynInstD ''Rep [typ t] (typ (genRepName t))
+        [
+#if __GLASGOW_HASKELL__ >= 707
+          tySynInstD ''Rep (tySynEqn [typ t] (typ (genRepName t)))
+#else
+          tySynInstD ''Rep [typ t] (typ (genRepName t))
+#endif
         , {- inlPrg, -} funD 'from fcs, funD 'to tcs]
 
 constrInstance :: Name -> Q [Dec]
@@ -381,7 +386,11 @@
 genExTyFamInsts' dt (ForallC vs cxt c) = 
   do let mR = mobilityRules (tyVarBndrsToNames vs) cxt
          conName = ConT (genName [dt,getConName c])
+#if __GLASGOW_HASKELL__ >= 707
+         tySynInst ty n x = TySynInstD ''X (TySynEqn [conName, int2TLNat n, ty] x)
+#else
          tySynInst ty n x = TySynInstD ''X [conName, int2TLNat n, ty] x
+#endif
      return [ tySynInst ty n (VarT nm) | (n,(nm, ty)) <- zip [0..] mR ]
 genExTyFamInsts' _ _ = return []
 
