diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,10 @@
 # Changelog for [`multistate` package](https://hackage.haskell.org/package/multistate)
 
+## 0.8.0.2 *June 2019*
+
+  * Adapt for ghc-8.8 (optimistically; QuickCheck does not build so
+    tests are untested)
+
 ## 0.8.0.1 *October 2018*
 
   * Adapt for ghc-8.6 (really, this time)
diff --git a/multistate.cabal b/multistate.cabal
--- a/multistate.cabal
+++ b/multistate.cabal
@@ -1,5 +1,5 @@
 Name:          multistate
-Version:       0.8.0.1
+Version:       0.8.0.2
 Cabal-Version: >= 1.10
 Build-Type:    Simple
 license:       BSD3
@@ -69,7 +69,7 @@
   other-modules:
     Control.Monad.Trans.MultiGST.Common
   build-depends:
-    base         >= 4.9   && <4.13,
+    base         >= 4.9   && <4.14,
     mtl          >= 2.1   && <2.3,
     transformers >= 0.3   && <0.6,
     tagged       >= 0.7   && <0.9,
@@ -87,6 +87,7 @@
     LambdaCase
   ghc-options: {
     -Wall
+    -Wcompat
     -fno-warn-unused-imports
   }
   if impl(ghc > 8.0) {
@@ -107,7 +108,7 @@
     multistate,
     base <999,
     transformers <0.6,
-    hspec >=2 && <2.6
+    hspec >=2 && <2.8
   ghc-options:      -Wall
   main-is:          Test.hs
   hs-source-dirs:   test
diff --git a/src/Control/Monad/Trans/MultiGST/Common.hs b/src/Control/Monad/Trans/MultiGST/Common.hs
--- a/src/Control/Monad/Trans/MultiGST/Common.hs
+++ b/src/Control/Monad/Trans/MultiGST/Common.hs
@@ -25,6 +25,7 @@
 
 
 
+import Data.Kind (Type)
 import Data.Semigroup
 import qualified Data.HList.HList as HList
 
@@ -121,7 +122,7 @@
   CanWriteConstraint 'TellableFlag = ()
   CanWriteConstraint 'SettableFlag = ()
 
-data HListM :: [CanReadWrite *] -> * where
+data HListM :: [CanReadWrite Type] -> Type where
   HNilM :: HListM '[]
   (:+-:) :: x -> HListM xr -> HListM ('Gettable x ': xr)
   (:++:) :: x -> HListM xr -> HListM ('Settable x ': xr)
@@ -154,20 +155,20 @@
     x1 :++: xr1 == x2 :++: xr2 = x1==x2 && xr1==xr2
     x1 :++: xr1 /= x2 :++: xr2 = x1/=x2 || xr1/=xr2
 
-type family AppendM (l1 :: [CanReadWrite *]) (l2 :: [CanReadWrite *]) :: [CanReadWrite *] where
+type family AppendM (l1 :: [CanReadWrite Type]) (l2 :: [CanReadWrite Type]) :: [CanReadWrite Type] where
   AppendM '[] l2 = l2
   AppendM (car1 ': cdr2) l2 = car1 ': AppendM cdr2 l2
 
-type family HListMReaders (l :: [*]) :: [CanReadWrite *] where
+type family HListMReaders (l :: [Type]) :: [CanReadWrite Type] where
   HListMReaders '[] = '[]
   HListMReaders (t ': tr) = 'Gettable t ': HListMReaders tr
 
-type family AppendMReaders (l1 :: [*]) (l2 :: [CanReadWrite *]) :: [CanReadWrite *] where
+type family AppendMReaders (l1 :: [Type]) (l2 :: [CanReadWrite Type]) :: [CanReadWrite Type] where
   AppendMReaders '[] l2 = l2
   AppendMReaders (t ': tr) l2 = 'Gettable t ': AppendMReaders tr l2
 
 class HListMGettableClass ts where
-  type HListMGettableOnly ts :: [*]
+  type HListMGettableOnly ts :: [Type]
   hListMGettableOnly :: HListM ts -> HList.HList (HListMGettableOnly ts)
 
 instance HListMGettableClass '[] where
diff --git a/src/Data/HList/HList.hs b/src/Data/HList/HList.hs
--- a/src/Data/HList/HList.hs
+++ b/src/Data/HList/HList.hs
@@ -22,6 +22,7 @@
 
 import Prelude hiding (reverse)
 
+import Data.Kind (Type)
 import Data.Monoid (Monoid, mappend, mempty)
 import Data.Semigroup
 
@@ -29,7 +30,7 @@
 
 
 
-data HList :: [*] -> * where
+data HList :: [Type] -> Type where
   HNil :: HList '[]
   (:+:) :: x -> HList xs -> HList (x ': xs)
   -- TCons :: x -> HList xs -> HList (Cons x xs)
@@ -72,7 +73,7 @@
 -- cannot use the closed variant because of ghc-7.8.4.
 -- (was not investigated more closely; there simply
 --  is some syntax error for code which works fine with ghc-7.10.)
-type family Append (l1::[*]) (l2::[*]) :: [*]
+type family Append (l1::[Type]) (l2::[Type]) :: [Type]
 type instance Append '[] l2 = l2
 type instance Append (car1 ': cdr2) l2 = car1 ': Append cdr2 l2
 
@@ -80,7 +81,7 @@
 hAppend HNil l = l
 hAppend (x:+:xs) l = x :+: hAppend xs l
 
-class HInit (l1 :: [*]) where
+class HInit (l1 :: [Type]) where
   hInit :: forall l2 . Proxy l2 -> HList (Append l1 l2) -> HList l1
   hSplit :: forall l2 . HList (Append l1 l2) -> (HList l1, HList l2)
 
