diff --git a/Data/Generics/Genifunctors.hs b/Data/Generics/Genifunctors.hs
--- a/Data/Generics/Genifunctors.hs
+++ b/Data/Generics/Genifunctors.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TemplateHaskell,PatternGuards,RecordWildCards #-}
+{-# LANGUAGE CPP,TemplateHaskell,PatternGuards,RecordWildCards #-}
 -- | Generate (derive) generalized 'fmap', 'foldMap' and 'traverse' for Bifunctors, Trifunctors, or a functor with any arity
 --
 -- Example:
@@ -178,7 +178,12 @@
 foldMapType tc tvs = do
     m <- newName "m"
     from <- mapM (newName . nameBase) tvs
-    return $ ForallT (map PlainTV (m : from)) [ClassP ''Monoid [VarT m]]
+    return $ ForallT (map PlainTV (m : from))
+#if MIN_VERSION_template_haskell(2,10,0)
+                                              [AppT (ConT ''Monoid) (VarT m)]
+#else
+                                              [ClassP ''Monoid [VarT m]]
+#endif
            $ foldr arr
                 (applyTyVars tc from `arr` VarT m)
                 (zipWith arr (map VarT from) (repeat (VarT m)))
@@ -188,7 +193,12 @@
     f <- newName "f"
     from <- mapM (newName . nameBase) tvs
     to   <- mapM (newName . nameBase) tvs
-    return $ ForallT (map PlainTV (f : from ++ to)) [ClassP constraint_class [VarT f]]
+    return $ ForallT (map PlainTV (f : from ++ to))
+#if MIN_VERSION_template_haskell(2,10,0)
+                                                    [AppT (ConT constraint_class) (VarT f)]
+#else
+                                                    [ClassP constraint_class [VarT f]]
+#endif
            $ foldr arr
                 (applyTyVars tc from `arr` (VarT f `AppT` applyTyVars tc to))
                 (zipWith arr (map VarT from) (map (\ t -> VarT f `AppT` VarT t) to))
@@ -219,7 +229,7 @@
 
             Generator{..} <- ask
 
-            fn <- q $ newName ("_" ++ nameBase tc)
+            fn <- q $ newSanitizedName (nameBase tc)
             modify (M.insert tc fn)
             (tvs,cons) <- getTyConInfo tc
             fs <- zipWithM (const . q . newName) (repeat "_f") tvs
@@ -250,6 +260,13 @@
                 ]
             return fn
 
+newSanitizedName :: String -> Q Name
+newSanitizedName nb = newName $ case nb of
+    "[]" -> "_List"
+    name | Just deg <- tupleDegreeMaybe name
+             -> "_Tuple" ++ show deg
+    name -> "_" ++ name
+
 arr :: Type -> Type -> Type
 arr t1 t2 = (ArrowT `AppT` t1) `AppT` t2
 
@@ -270,8 +287,13 @@
         PrimTyConI{} -> return ([], [])
         i -> error $ "unexpected TyCon: " ++ show i
   where
-    unPlainTv (PlainTV tv) = tv
-    unPlainTv i            = error $ "unexpected non-plain TV" ++ show i
+    unPlainTv (PlainTV tv)        = tv
+#if MIN_VERSION_template_haskell(2,8,0)
+    unPlainTv (KindedTV tv StarT) = tv
+#else
+    unPlainTv (KindedTV tv StarK) = tv
+#endif
+    unPlainTv i                   = error $ "unexpected non-plain TV" ++ show i
 
 expandSyn ::  Type -> Q Type
 expandSyn (ForallT tvs ctx t) = liftM (ForallT tvs ctx) $ expandSyn t
@@ -311,3 +333,13 @@
 subst s (SigT t k) = SigT (subst s t) k
 subst _ t = t
 
+-- Written by Richard Eisenberg in th-desugar
+
+tupleDegreeMaybe :: String -> Maybe Int
+tupleDegreeMaybe s = do
+    '(' : s1 <- return s
+    (commas, ")") <- return $ span (== ',') s1
+    let degree
+          | "" <- commas = 0
+          | otherwise    = length commas + 1
+    return degree
diff --git a/changelog b/changelog
new file mode 100644
--- /dev/null
+++ b/changelog
@@ -0,0 +1,2 @@
+genifunctors 0.3 (released 2015-04-10)
+	* Support GHC 7.10, contributed by Ryan Scott.
diff --git a/genifunctors.cabal b/genifunctors.cabal
--- a/genifunctors.cabal
+++ b/genifunctors.cabal
@@ -1,5 +1,5 @@
 name:                genifunctors
-version:             0.2.2.0
+version:             0.3
 synopsis:            Generate generalized fmap, foldMap and traverse
 description:         Generate (derive) fmap, foldMap and traverse for Bifunctors, Trifunctors, or a functor with any arity
 license:             BSD3
@@ -11,7 +11,7 @@
 cabal-version:       >=1.10
 homepage:            https://github.com/danr/genifunctors
 bug-reports:         https://github.com/danr/genifunctors/issues
-extra-source-files:  TestTypes.hs
+extra-source-files:  TestTypes.hs changelog
 
 source-repository head
   type: git
