diff --git a/Language/Haskell/TH/ExpandSyns.hs b/Language/Haskell/TH/ExpandSyns.hs
--- a/Language/Haskell/TH/ExpandSyns.hs
+++ b/Language/Haskell/TH/ExpandSyns.hs
@@ -74,7 +74,11 @@
     TyConI d -> decIsSyn d
     ClassI {} -> return Nothing
     PrimTyConI {} -> return Nothing
-#if MIN_VERSION_template_haskell(2,7,0)
+#if MIN_VERSION_template_haskell(2,11,0)
+    FamilyI (OpenTypeFamilyD (TypeFamilyHead name _ _ _)) _ -> maybeWarnTypeFamily TypeFam name >> return Nothing
+    FamilyI (ClosedTypeFamilyD (TypeFamilyHead name _ _ _) _) _ -> maybeWarnTypeFamily TypeFam name >> return Nothing
+    FamilyI (DataFamilyD _ _ _) _ -> return Nothing
+#elif MIN_VERSION_template_haskell(2,7,0)
     FamilyI (FamilyD flavour name _ _) _ -> maybeWarnTypeFamily flavour name >> return Nothing
 #endif
     _ -> do
@@ -111,7 +115,11 @@
 decIsSyn (DataD {}) = return Nothing
 decIsSyn (NewtypeD {}) = return Nothing
 decIsSyn (TySynD _ vars t) = return (Just (tyVarBndrGetName <$> vars,t))
-#if MIN_VERSION_template_haskell(2,4,0)
+#if MIN_VERSION_template_haskell(2,11,0)
+decIsSyn (OpenTypeFamilyD (TypeFamilyHead name _ _ _)) = maybeWarnTypeFamily TypeFam name >> return Nothing
+decIsSyn (ClosedTypeFamilyD (TypeFamilyHead name _ _ _) _) = maybeWarnTypeFamily TypeFam name >> return Nothing
+decIsSyn (DataFamilyD _ _ _) = return Nothing
+#elif MIN_VERSION_template_haskell(2,4,0)
 decIsSyn (FamilyD flavour name _ _) = maybeWarnTypeFamily flavour name >> return Nothing
 #endif
 decIsSyn x = do
@@ -209,6 +217,24 @@
       go acc x@EqualityT = passThrough acc x
 #endif
 
+#if MIN_VERSION_template_haskell(2,11,0)
+      go acc (InfixT t1 nm t2) =
+          do
+            t1' <- expandSyns t1
+            t2' <- expandSyns t2
+            return (acc,InfixT t1' nm t2')
+      go acc (UInfixT t1 nm t2) =
+          do
+            t1' <- expandSyns t1
+            t2' <- expandSyns t2
+            return (acc,UInfixT t1' nm t2')
+      go acc (ParensT t) =
+          do
+            (acc',t') <- go acc t
+            return (acc',ParensT t')
+      go acc x@WildCardT = passThrough acc x
+#endif
+
 class SubstTypeVariable a where
     -- | Capture-free substitution
     subst :: (Name, Type) -> a -> a
@@ -251,6 +277,13 @@
       go s@EqualityT = s
 #endif
 
+#if MIN_VERSION_template_haskell(2,11,0)
+      go (InfixT t1 nm t2) = InfixT (go t1) nm (go t2)
+      go (UInfixT t1 nm t2) = UInfixT (go t1) nm (go t2)
+      go (ParensT t1) = ParensT (go t1)
+      go s@WildCardT = s
+#endif
+
 -- testCapture :: Type
 -- testCapture =
 --     let
@@ -317,7 +350,12 @@
       go (InfixC (y1,t1) op (y2,t2)) = InfixC (y1,st t1) op (y2,st t2)
       go (ForallC vars cxt body) =
           commonForallCase (v,t) (vars,cxt,body)
+#if MIN_VERSION_template_haskell(2,11,0)
+      go c@GadtC{} = errGadt c
+      go c@RecGadtC{} = errGadt c
 
+      errGadt c = error (packagename++": substInCon currently doesn't support GADT constructors with GHC >= 8 ("++pprint c++")")
+#endif
 
 
 class HasForallConstruct a where
diff --git a/changelog.markdown b/changelog.markdown
--- a/changelog.markdown
+++ b/changelog.markdown
@@ -1,3 +1,9 @@
+## 0.4.0.0
+
+*   Fixed build with GHC 8 / template-haskell-2.11 (Thanks to Christiaan Baaij)
+
+    Note: `substInCon` doesn't support GADT constructor with GHC 8 in this version
+
 ## 0.3.0.6
 
 * Fixed build with current (commit 029a296a770addbd096bbfd6de0936327ee620d4) GHC 7.10 (Thanks to David Fox)
diff --git a/th-expand-syns.cabal b/th-expand-syns.cabal
--- a/th-expand-syns.cabal
+++ b/th-expand-syns.cabal
@@ -1,5 +1,5 @@
 name:                th-expand-syns
-version:             0.3.0.6
+version:             0.4.0.0
 synopsis:            Expands type synonyms in Template Haskell ASTs
 description:         Expands type synonyms in Template Haskell ASTs
 category:            Template Haskell
@@ -16,8 +16,8 @@
  location: git://github.com/DanielSchuessler/th-expand-syns.git
 
 Library
-    build-depends:       base >= 4 && < 5, template-haskell < 2.11, syb, containers
-    ghc-options:         
+    build-depends:       base >= 4 && < 5, template-haskell < 2.12, syb, containers
+    ghc-options:
     exposed-modules:     Language.Haskell.TH.ExpandSyns
 
 Test-Suite test-th-expand-syns
