diff --git a/free-algebras.cabal b/free-algebras.cabal
--- a/free-algebras.cabal
+++ b/free-algebras.cabal
@@ -1,5 +1,6 @@
+cabal-version:  2.0
 name:           free-algebras
-version:        0.0.8.1
+version:        0.0.8.2
 synopsis:       Free algebras
 description:
   Algebraic approach to free algebras, inspired by Univeral Algebra and
@@ -10,16 +11,15 @@
 bug-reports:    https://github.com/coot/free-algebras/issues
 author:         Marcin Szamotulski
 maintainer:     profunctor@pm.me
-copyright:      (c) 2018-2019 Marcin Szamotulski
+copyright:      (c) 2018-2020 Marcin Szamotulski
 license:        MPL-2.0
 license-file:   LICENSE
 build-type:     Simple
-cabal-version:  >= 1.10
 extra-source-files:
     ChangeLog.md
     README.md
 stability:      experimental
-tested-with:    GHC==8.0.2, GHC==8.2.2, GHC==8.4.4, GHC==8.6.3, GHC==8.8.1
+tested-with:    GHC==8.6.5, GHC==8.8.3, GHC==8.10.1
 
 source-repository head
   type: git
diff --git a/src/Control/Algebra/Free2.hs b/src/Control/Algebra/Free2.hs
--- a/src/Control/Algebra/Free2.hs
+++ b/src/Control/Algebra/Free2.hs
@@ -131,7 +131,8 @@
 -- It is the [unit](https://ncatlab.org/nlab/show/unit+of+an+adjunction) of
 -- adjuction defined by @'FreeAlgebra1'@ class.
 --
-foldFree2 :: forall (m :: (k -> k -> Type) -> k -> k -> Type)
+foldFree2 :: forall k
+                    (m :: (k -> k -> Type) -> k -> k -> Type)
                     (f :: k -> k -> Type)
                     a b .
              ( FreeAlgebra2 m
@@ -151,7 +152,8 @@
 -- prop> unFoldNatFree id = liftFree2
 --
 unFoldNatFree2
-    :: forall (m :: (k -> k -> Type) -> k -> k -> Type)
+    :: forall k
+              (m :: (k -> k -> Type) -> k -> k -> Type)
               (f :: k -> k -> Type)
               d a b.
        ( FreeAlgebra2 m
@@ -171,7 +173,8 @@
 -- prop> hoistFree2 id = id
 -- prop> hoistFree2 f . hoistFree2 g = hoistFree2 (f . g)
 --
-hoistFree2 :: forall (m :: (k -> k -> Type) -> k -> k -> Type)
+hoistFree2 :: forall k
+                     (m :: (k -> k -> Type) -> k -> k -> Type)
                      (f :: k -> k -> Type)
                      g a b .
               ( FreeAlgebra2 m
@@ -188,8 +191,8 @@
 {-# RULES
 
 "hositFree2/foldNatFree2"
-    forall (nat  :: forall (x :: k) (y :: k). g x y -> c x y)
-           (nat0 :: forall (x :: k) (y :: k). f x y -> g x y)
+    forall (nat  :: forall x y. g x y -> c x y)
+           (nat0 :: forall x y. f x y -> g x y)
            (f :: m f a b).
     foldNatFree2 nat (hoistFree2 nat0 f) = foldNatFree2 (nat . nat0) f
 
@@ -212,7 +215,7 @@
 
 {-# RULES
 
-"hoistFreeH2/foldNatFree2" forall (nat :: forall (x :: k) (y :: k). f x y -> c x y)
+"hoistFreeH2/foldNatFree2" forall (nat :: forall x y. f x y -> c x y)
                                   (f :: AlgebraType m c => m f a b).
                            foldNatFree2 nat (hoistFreeH2 f) = foldNatFree2 nat f
 #-}
@@ -224,7 +227,8 @@
 --
 -- This property is analogous to @foldMap f . concat = foldMap (foldMap f)@,
 --
-joinFree2 :: forall (m :: (k -> k -> Type) -> k -> k -> Type)
+joinFree2 :: forall k
+                    (m :: (k -> k -> Type) -> k -> k -> Type)
                     (f :: k -> k -> Type)
                     a b .
              ( FreeAlgebra2 m
