diff --git a/src/Data/Table.hs b/src/Data/Table.hs
--- a/src/Data/Table.hs
+++ b/src/Data/Table.hs
@@ -131,7 +131,7 @@
   type PKT t
 
   -- | Used to store indices
-  data Tab t m
+  data Tab t (m :: * -> * -> *)
 
   -- | The type used internally for columns
   data Key (k :: *) t :: * -> *
@@ -365,7 +365,12 @@
   keyVars  <- mapM (newName . nameBase . snd) keys
 
   return [InstanceD [] (AppT (ConT ''Tabular) t)
-    [ TySynInstD ''PKT [t] pkt
+    [
+#if MIN_VERSION_template_haskell(2,9,0)
+      TySynInstD ''PKT $ TySynEqn [t] pkt
+#else
+      TySynInstD ''PKT [t] pkt
+#endif
 
     , DataInstD [] ''Key [k, t, a] (zipWith (\(kk,n) kt ->
         ForallC [] [EqualP k (ConT kk), EqualP a kt]
diff --git a/tables.cabal b/tables.cabal
--- a/tables.cabal
+++ b/tables.cabal
@@ -1,6 +1,6 @@
 name:          tables
 category:      Data, Lenses
-version:       0.4
+version:       0.4.1
 license:       BSD3
 cabal-version: >= 1.8
 license-file:  LICENSE
@@ -17,7 +17,7 @@
   For a quick tour, see <https://github.com/ekmett/tables#examples>
 
 build-type:    Custom
-tested-with:   GHC == 7.4.2
+tested-with:   GHC == 7.6.2, GHC == 7.8.0.20140228
 extra-source-files:
   .travis.yml
   .ghci
@@ -48,7 +48,7 @@
   build-depends:
     base                 >= 4.3 && < 5,
     binary               >= 0.5 && < 0.8,
-    cereal               >= 0.3 && < 0.4,
+    cereal               >= 0.3 && < 0.5,
     comonad              >= 4   && < 5,
     containers           >= 0.4 && < 0.6,
     deepseq              >= 1.3 && < 1.4,
@@ -56,7 +56,7 @@
     lens                 >= 4   && < 5,
     profunctors          >= 4   && < 5,
     safecopy             >= 0.6.3 && < 0.9,
-    template-haskell     >= 2.7 && < 2.9,
+    template-haskell     >= 2.7 && < 2.10,
     transformers         >= 0.2 && < 0.4,
     transformers-compat  >= 0.1 && < 1,
     unordered-containers == 0.2.*
