diff --git a/ChangeLog.md b/ChangeLog.md
--- a/ChangeLog.md
+++ b/ChangeLog.md
@@ -1,5 +1,13 @@
 # Revision history for dependent-sum
 
+## 0.1.0.2 - 2020-03-23
+
+* Update GitHub repository in cabal metadata.
+
+## 0.1.0.1 - 2020-03-21
+
+* Support GHC 8.8.
+
 ## 0.1.0.0 - 2019-03-21
 
 * Remove code for generating instances of *Tag classes, as they were removed in dependent-sum-0.6.
diff --git a/dependent-sum-template.cabal b/dependent-sum-template.cabal
--- a/dependent-sum-template.cabal
+++ b/dependent-sum-template.cabal
@@ -1,5 +1,5 @@
 name:                   dependent-sum-template
-version:                0.1.0.0
+version:                0.1.0.2
 stability:              experimental
 
 cabal-version:          >= 1.8
@@ -8,7 +8,7 @@
 author:                 James Cook <mokus@deepbondi.net>
 maintainer:             Ryan Trinkle <ryan.trinkle@obsidian.systems>
 license:                PublicDomain
-homepage:               /dev/null
+homepage:               https://github.com/obsidiansystems/dependent-sum
 
 category:               Unclassified
 synopsis:               Template Haskell code to generate instances of classes in dependent-sum package
@@ -17,13 +17,14 @@
 tested-with:            GHC == 8.0.2,
                         GHC == 8.2.2,
                         GHC == 8.4.4,
-                        GHC == 8.6.4
+                        GHC == 8.6.5,
+                        GHC == 8.8.3
 
 extra-source-files:     ChangeLog.md
 
 source-repository head
   type: git
-  location: https://github.com/mokus0/dependent-sum-template
+  location: https://github.com/obsidiansystems/dependent-sum
 
 Library
   if impl(ghc < 7.10)
diff --git a/src/Data/Dependent/Sum/TH/Internal.hs b/src/Data/Dependent/Sum/TH/Internal.hs
--- a/src/Data/Dependent/Sum/TH/Internal.hs
+++ b/src/Data/Dependent/Sum/TH/Internal.hs
@@ -40,9 +40,20 @@
     where
         inst = instanceD (cxt (map return dataCxt)) (makeClassHead $ conT name) [dec]
         dec = f bndrs cons
+#if __GLASGOW_HASKELL__ >= 808
+deriveForDec className makeClassHead f (DataInstD dataCxt tvBndrs ty _ cons _) = return <$> inst
+#else
 deriveForDec className makeClassHead f (DataInstD dataCxt name tyArgs _ cons _) = return <$> inst
+#endif
     where
-        inst = instanceD (cxt (map return dataCxt)) (makeClassHead $ foldl1 appT (map return $ (ConT name : init tyArgs))) [dec]
+        inst = instanceD (cxt (map return dataCxt)) clhead [dec]
+#if __GLASGOW_HASKELL__ >= 808
+        clhead = makeClassHead $ return $ initTy ty
+        bndrs = [PlainTV v | PlainTV v <- maybe [] id tvBndrs]
+        initTy (AppT ty _) = ty
+#else
+        clhead = makeClassHead $ foldl1 appT (map return $ (ConT name : init tyArgs))
         -- TODO: figure out proper number of family parameters vs instance parameters
         bndrs = [PlainTV v | VarT v <- tail tyArgs ]
+#endif
         dec = f bndrs cons
diff --git a/test/test.hs b/test/test.hs
--- a/test/test.hs
+++ b/test/test.hs
@@ -19,6 +19,7 @@
 import Data.GADT.Compare.TH
 import Data.GADT.Show
 import Data.GADT.Show.TH
+import Data.Type.Equality
 
 data MySum :: * -> * where
   MySum_Int :: MySum Int
