diff --git a/apecs.cabal b/apecs.cabal
--- a/apecs.cabal
+++ b/apecs.cabal
@@ -1,5 +1,5 @@
 name:                apecs
-version:             0.8.2
+version:             0.8.3
 homepage:            https://github.com/jonascarpay/apecs#readme
 license:             BSD3
 license-file:        LICENSE
diff --git a/src/Apecs/THTuples.hs b/src/Apecs/THTuples.hs
--- a/src/Apecs/THTuples.hs
+++ b/src/Apecs/THTuples.hs
@@ -1,4 +1,5 @@
 {-# LANGUAGE TemplateHaskell #-}
+{-# LANGUAGE CPP #-}
 
 module Apecs.THTuples where
 
@@ -54,9 +55,12 @@
       compT var = ConT compN `AppT` var
       strgN = mkName "Storage"
       strgT var = ConT strgN `AppT` var
-      compI = InstanceD Nothing (fmap compT vars) (compT varTuple)
-        [ TySynInstD strgN $
-          TySynEqn [varTuple] (tupleUpT . fmap strgT $ vars)
+      compI = InstanceD Nothing (fmap compT vars) (compT varTuple) [
+#if MIN_VERSION_template_haskell(2,15,0)
+          TySynInstD $ TySynEqn Nothing (strgT varTuple) (tupleUpT . fmap strgT $ vars)
+#else
+          TySynInstD strgN $ TySynEqn [varTuple] (tupleUpT . fmap strgT $ vars)
+#endif
         ]
 
       -- Has
@@ -79,7 +83,11 @@
       -- Elem
       elemN = mkName "Elem"
       elemT var = ConT elemN `AppT` var
+#if MIN_VERSION_template_haskell(2,15,0)
+      elemI = TySynInstD $ TySynEqn Nothing (elemT varTuple) (tupleUpT $ fmap elemT vars)
+#else
       elemI = TySynInstD elemN $ TySynEqn [varTuple] (tupleUpT $ fmap elemT vars)
+#endif
 
       -- s, ety, w arguments
       sNs = [ mkName $ "s_" ++ show i | i <- [0..n-1]]
