diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2020-10-24  Facundo Domínguez  <facundo.dominguez@tweag.io>  0.4.1
+
+* Support ghc-8.6.5 and ghc-8.8.4
+
 2017-08-22  Facundo Domínguez  <facundo.dominguez@tweag.io>  0.4.0
 
 * Add compatibility with ghc-8.2.1.
diff --git a/rank1dynamic.cabal b/rank1dynamic.cabal
--- a/rank1dynamic.cabal
+++ b/rank1dynamic.cabal
@@ -1,5 +1,5 @@
 Name:                rank1dynamic
-Version:             0.4.0
+Version:             0.4.1
 Synopsis:            Like Data.Dynamic/Data.Typeable but with support for rank-1 polymorphic types
 Description:         "Data.Typeable" and "Data.Dynamic" only support monomorphic types.
                      In this package we provide similar functionality but with
@@ -13,7 +13,7 @@
 Copyright:           Well-Typed LLP, Tweag I/O Limited
 Category:            Data
 Build-Type:          Simple
-Cabal-Version:       >=1.8
+Cabal-Version:       >=1.10
 extra-source-files: ChangeLog
 
 Source-Repository head
@@ -23,11 +23,12 @@
 Library
   Exposed-Modules:     Data.Rank1Dynamic,
                        Data.Rank1Typeable
-  Build-Depends:       base >= 4.6 && < 5,
+  Build-Depends:       base >= 4.8 && < 5,
                        binary >= 0.5 && < 0.9
   HS-Source-Dirs:      src
   GHC-Options:         -Wall
-  Extensions:          EmptyDataDecls,
+  default-language:    Haskell2010
+  Default-Extensions:  EmptyDataDecls,
                        DeriveDataTypeable,
                        ViewPatterns
 
@@ -40,4 +41,5 @@
                      test-framework >= 0.6 && < 0.9,
                      test-framework-hunit >= 0.2.0 && < 0.4
   ghc-options:       -Wall
+  default-language:    Haskell2010
   HS-Source-Dirs:    tests
diff --git a/tests/test.hs b/tests/test.hs
--- a/tests/test.hs
+++ b/tests/test.hs
@@ -1,12 +1,20 @@
-import Data.Rank1Typeable
-import Data.Rank1Dynamic
+{-# LANGUAGE CPP #-}
+import           Data.Rank1Dynamic
+import           Data.Rank1Typeable
 
-import Test.HUnit hiding (Test)
-import Test.Framework
-import Test.Framework.Providers.HUnit
-import Unsafe.Coerce
+import           Test.Framework
+import           Test.Framework.Providers.HUnit
+import           Test.HUnit                     hiding (Test)
+import           Unsafe.Coerce
 
+funKindStr :: String
+#if __GLASGOW_HASKELL__ >= 804
+funKindStr = "->"
+#else
+funKindStr = "(->)"
+#endif
 
+
 main :: IO ()
 main = defaultMain tests
 
@@ -35,7 +43,7 @@
 
       , testCase "CANNOT use a term of type 'forall a. a -> a' as 'forall a. a'" $
           typeOf (undefined :: ANY) `isInstanceOf` typeOf (undefined :: ANY -> ANY)
-          @?= Left "Cannot unify Skolem and (->)"
+          @?= Left ("Cannot unify Skolem and " ++ funKindStr)
       ]
 
   , testGroup "Examples of funResultTy"
@@ -90,7 +98,7 @@
 
       , testCase "CANNOT use a term of type 'forall a. a -> a' as 'forall a. a'" $
           do f <- fromDynamic (toDynamic (id :: ANY -> ANY)) ; return $ (f :: Int)
-          @?= Left "Cannot unify Int and (->)"
+          @?= Left ("Cannot unify Int and " ++ funKindStr)
       ]
 
   , testGroup "Examples of dynApply"
