diff --git a/memoize.cabal b/memoize.cabal
--- a/memoize.cabal
+++ b/memoize.cabal
@@ -1,15 +1,15 @@
 name:           memoize
-version:        0.8
+version:        0.8.1
 cabal-version:  >= 1.8
 license:        BSD3
 license-file:   LICENSE
 stability:      experimental
-author:         Jesse A. Tov <tov@ccs.neu.edu>
-maintainer:     tov@ccs.neu.edu
+author:         Jesse A. Tov <jesse@eecs.northwestern.edu>
+maintainer:     jesse@eecs.northwestern.edu
 category:       Data
 synopsis:       A memoization library
 build-type:     Simple
-tested-with:    GHC == 7.4.1, GHC == 7.0.2, GHC == 6.12.3
+tested-with:    GHC == 7.10.3, GHC == 7.8.4, GHC == 7.6.3
 
 description:
         This library provides a type class 'Memoizable' for memoizing
diff --git a/src/Data/Function/Memoize.hs b/src/Data/Function/Memoize.hs
--- a/src/Data/Function/Memoize.hs
+++ b/src/Data/Function/Memoize.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE
+      CPP,
       DeriveFunctor,
       GeneralizedNewtypeDeriving,
       TemplateHaskell,
@@ -32,7 +33,9 @@
   deriveMemoizable, deriveMemoizableParams, deriveMemoize,
 ) where
 
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative
+#endif
 import Control.Monad
 import Debug.Trace
 
diff --git a/src/Data/Function/Memoize/TH.hs b/src/Data/Function/Memoize/TH.hs
--- a/src/Data/Function/Memoize/TH.hs
+++ b/src/Data/Function/Memoize/TH.hs
@@ -12,7 +12,9 @@
   deriveMemoizable, deriveMemoizableParams, deriveMemoize,
 ) where
 
+#if __GLASGOW_HASKELL__ < 710
 import Control.Applicative
+#endif
 import Control.Monad
 import Language.Haskell.TH
 
@@ -167,7 +169,11 @@
 -- names to use.
 buildContext ∷ Maybe [Int] → [TyVarBndr] → [Name] → CxtQ
 buildContext mindices tvbs tvs =
+#if MIN_VERSION_template_haskell(2,10,0)
+  cxt (appT (conT ''Memoizable) . varT <$> cxttvs)
+#else
   cxt (classP ''Memoizable . (:[]) . varT <$> cxttvs)
+#endif
   where
   cxttvs = case mindices of
     Just ixs → filterBy (`elem` ixs) [1 ..] tvs
