diff --git a/CHANGELOG.md b/CHANGELOG.md
new file mode 100644
--- /dev/null
+++ b/CHANGELOG.md
@@ -0,0 +1,7 @@
+# 0.0.1
+
+- Relax 
+  ```diff
+  - instance Monad m   => Module m Identity where
+  + instance Functor f => Module f Identity where
+  ```
diff --git a/Setup.hs b/Setup.hs
deleted file mode 100644
--- a/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/bound-extras.cabal b/bound-extras.cabal
--- a/bound-extras.cabal
+++ b/bound-extras.cabal
@@ -1,9 +1,8 @@
-cabal-version: 2.2
-name:          bound-extras
-version:       0
-
-synopsis: ScopeH and ScopeT extras for bound
-category: Language, Compilers, Interpreters
+cabal-version:      2.2
+name:               bound-extras
+version:            0.0.1
+synopsis:           ScopeH and ScopeT extras for bound
+category:           Language, Compilers, Interpreters
 description:
   Provides more complex @Scope@ variants; @ScopeT@ and @ScopeH@:
   .
@@ -21,75 +20,66 @@
   Look into @examples/@ directory for /System F/ and /Bidirectional STLC/
   implemented with a help of 'ScopeH'.
 
-license:      BSD-3-Clause
-license-file: LICENSE
-copyright:    (c) 2018 Oleg Grenrus
-
-author:       Oleg Grenrus, Edward Kmett
-maintainer:   Oleg Grenrus <oleg.grenrus@iki.fi>
-homepage:     https://github.com/phadej/bound-extras
-bug-reports:  https://github.com/phadej/bound-extras/issues
-
-tested-with:
-  GHC ==8.0.2
-   || ==8.2.2
-   || ==8.4.3
-   || ==8.6.1
-
-extra-source-files:
-  examples/*.txt
+license:            BSD-3-Clause
+license-file:       LICENSE
+copyright:          (c) 2018 Oleg Grenrus
+author:             Oleg Grenrus, Edward Kmett
+maintainer:         Oleg Grenrus <oleg.grenrus@iki.fi>
+homepage:           https://github.com/phadej/bound-extras
+bug-reports:        https://github.com/phadej/bound-extras/issues
+tested-with:        GHC ==8.0.2 || ==8.2.2 || ==8.4.4 || ==8.6.5 || ==8.8.1
+extra-source-files: CHANGELOG.md examples/*.txt
 
 source-repository head
-  type: git
+  type:     git
   location: https://github.com/phadej/bound-extras
 
 library
   default-language: Haskell2010
   hs-source-dirs:   src
   ghc-options:      -Wall
-
   exposed-modules:
     Bound.ScopeH
     Bound.ScopeT
     Control.Monad.Module
 
+  -- GHC boot libraries
   build-depends:
-    -- GHC boot libraries
-    , base           ^>=4.9.1.0 || ^>= 4.10.1.0 || ^>=4.11.1.0
-    , deepseq        ^>=1.4.2.0
-    , transformers   ^>=0.5.0.0
-
-    -- other deps
-    , bound          ^>=2.0.1
-    , hashable       ^>=1.2.7.0
+    , base          ^>=4.9.1.0 || ^>=4.10.1.0 || ^>=4.11.1.0 || ^>=4.12.0.0
+    , deepseq       ^>=1.4.2.0
+    , hashable      ^>=1.2.7.0
+    , transformers  ^>=0.5.0.0
 
-  if !impl(ghc >= 8.2)
-    build-depends:
-      bifunctors ^>=5.5.3
+  -- other deps
+  build-depends:
+    , bound         ^>=2.0.1
 
+  if !impl(ghc >=8.2)
+    build-depends: bifunctors ^>=5.5.3
 
 test-suite examples
   type:             exitcode-stdio-1.0
   main-is:          Examples.hs
   other-modules:
-    Pretty
     BiSTLC
+    Pretty
     SystemF
 
   default-language: Haskell2010
   hs-source-dirs:   examples
   ghc-options:      -Wall
-
-  build-depends: base, bound, bound-extras
-    , containers   ^>=0.5.7.1
-    , filepath     ^>=1.4.1.1
-    , pretty       ^>=1.1.3.3
-    , tasty        ^>=1.1.0.3
-    , text-short   ^>=0.1.2
-    , tasty-golden ^>=2.3.2
-    , transformers ^>=0.5.0.0
-    , utf8-string  ^>=1.0.1.1
+  build-depends:
+    , base
+    , bound
+    , bound-extras
+    , containers    ^>=0.5.7.1 || ^>=0.6.0.1
+    , filepath      ^>=1.4.1.1
+    , pretty        ^>=1.1.3.3
+    , tasty         >=1.1.0.3 && <1.3
+    , tasty-golden  ^>=2.3.2
+    , text-short    ^>=0.1.2
+    , transformers  ^>=0.5.0.0
+    , utf8-string   ^>=1.0.1.1
 
-  if !impl(ghc >= 8.2)
-    build-depends:
-      bifunctors ^>=5.5.3
+  if !impl(ghc >=8.2)
+    build-depends: bifunctors
diff --git a/src/Control/Monad/Module.hs b/src/Control/Monad/Module.hs
--- a/src/Control/Monad/Module.hs
+++ b/src/Control/Monad/Module.hs
@@ -49,7 +49,7 @@
 composeAction :: (Functor f, Monad m) => Compose f m a -> (a -> m b) -> Compose f m b
 composeAction (Compose fma) amb = Compose (fmap (>>= amb) fma)
 
-instance Monad m => Module m Identity where
+instance Functor f => Module f Identity where
     fa >>== k = fmap (runIdentity . k) fa
 
 instance Monad m => Module (Scope b m) m where
