diff --git a/boolean-normal-forms.cabal b/boolean-normal-forms.cabal
--- a/boolean-normal-forms.cabal
+++ b/boolean-normal-forms.cabal
@@ -1,73 +1,90 @@
-name:                boolean-normal-forms
-version:             0.0.1
-synopsis:            Boolean normal form: NNF, DNF & CNF
-description:         The provided types that might be useful in symbolic manipulation of propositional logic expressions.
-license:             MIT
-license-file:        LICENSE
-author:              Oleg Grenrus
-maintainer:          oleg.grenrus@iki.fi
-copyright:           © Oleg Grenrus 2014
-category:            Data
-build-type:          Simple
-cabal-version:       >=1.18
-extra-source-files:  README.md CHANGELOG.md
-extra-doc-files:      doc-formulae/*.svg
+name:               boolean-normal-forms
+version:            0.0.1.1
+synopsis:           Boolean normal form: NNF, DNF & CNF
+description:
+  The provided types that might be useful in symbolic manipulation of propositional logic expressions.
+
+license:            MIT
+license-file:       LICENSE
+author:             Oleg Grenrus
+maintainer:         oleg.grenrus@iki.fi
+copyright:          © Oleg Grenrus 2014
+category:           Data
+build-type:         Simple
+cabal-version:      >=1.18
+extra-source-files:
+  README.md
+  CHANGELOG.md
+
+extra-doc-files:    doc-formulae/*.svg
 tested-with:
-  GHC==7.6.3,
-  GHC==7.8.4,
-  GHC==7.10.3,
-  GHC==8.0.2,
-  GHC==8.2.2
+  GHC ==7.6.3
+   || ==7.8.4
+   || ==7.10.3
+   || ==8.0.2
+   || ==8.2.2
+   || ==8.4.3
+   || ==8.6.5
+   || ==8.8.1
 
 library
-  hs-source-dirs:      src
-  exposed-modules:     Data.Algebra.Boolean.NormalForm,
-                       Data.Algebra.Boolean.FreeBoolean,
-                       Data.Algebra.Boolean.NNF,
-                       Data.Algebra.Boolean.DNF,
-                       Data.Algebra.Boolean.CNF,
-                       Data.Algebra.Boolean.Negable,
-                       Data.Algebra.Boolean.CoBoolean,
-                       Data.Algebra.Boolean.NNF.Set,
-                       Data.Algebra.Boolean.NNF.Tree,
-                       Data.Algebra.Boolean.DNF.List,
-                       Data.Algebra.Boolean.DNF.Set,
-                       Data.Algebra.Boolean.CNF.List,
-                       Data.Algebra.Boolean.CNF.Set
-  other-extensions:    DeriveFunctor,
-                       DeriveDataTypeable,
-                       ConstraintKinds,
-                       TypeFamilies,
-                       ScopedTypeVariables
-  build-depends:       base        >=4.6   && <4.11,
-                       containers  >=0.5   && <0.6,
-                       cond        >=0.4.1 && <0.5,
-                       deepseq     >=1.1.0.0 && <1.5
-  default-language:    Haskell2010
-  ghc-options:         -Wall
+  hs-source-dirs:   src
+  exposed-modules:
+    Data.Algebra.Boolean.CNF
+    Data.Algebra.Boolean.CNF.List
+    Data.Algebra.Boolean.CNF.Set
+    Data.Algebra.Boolean.CoBoolean
+    Data.Algebra.Boolean.DNF
+    Data.Algebra.Boolean.DNF.List
+    Data.Algebra.Boolean.DNF.Set
+    Data.Algebra.Boolean.FreeBoolean
+    Data.Algebra.Boolean.NNF
+    Data.Algebra.Boolean.NNF.Set
+    Data.Algebra.Boolean.NNF.Tree
+    Data.Algebra.Boolean.Negable
+    Data.Algebra.Boolean.NormalForm
 
+  other-extensions:
+    ConstraintKinds
+    DeriveDataTypeable
+    DeriveFunctor
+    ScopedTypeVariables
+    TypeFamilies
+
+  build-depends:
+      base        >=4.6     && <4.14
+    , cond        >=0.4.1   && <0.5
+    , containers  >=0.5     && <0.7
+    , deepseq     >=1.1.0.0 && <1.5
+
+  default-language: Haskell2010
+  ghc-options:      -Wall
+
 test-suite test
-  default-language:    Haskell2010
-  type:                exitcode-stdio-1.0
-  hs-source-dirs:      tests
-  main-is:             Main.hs
-  other-modules:       BooleanLaws,
-                       BooleanModelLaws,
-                       CNFList,
-                       CNFSet,
-                       DNFList,
-                       DNFSet,
-                       FreeBoolean,
-                       FreeBooleanTests,
-                       NegableLaws,
-                       NNFSet,
-                       NNFTree,
-                       SimplifyLaws
-  ghc-options:         -Wall -fno-warn-orphans
-  build-depends:       base,
-                       containers,
-                       cond,
-                       tasty                >=0.8,
-                       tasty-quickcheck     >=0.8.0.3,
-                       QuickCheck           >=2.10 && <2.11,
-                       boolean-normal-forms
+  default-language: Haskell2010
+  type:             exitcode-stdio-1.0
+  hs-source-dirs:   tests
+  main-is:          Main.hs
+  other-modules:
+    BooleanLaws
+    BooleanModelLaws
+    CNFList
+    CNFSet
+    DNFList
+    DNFSet
+    FreeBoolean
+    FreeBooleanTests
+    NNFSet
+    NNFTree
+    NegableLaws
+    SimplifyLaws
+
+  ghc-options:      -Wall -fno-warn-orphans
+  build-depends:
+      base
+    , boolean-normal-forms
+    , cond
+    , containers
+    , QuickCheck            >=2.10    && <2.14
+    , tasty                 >=0.8
+    , tasty-quickcheck      >=0.8.0.3
diff --git a/src/Data/Algebra/Boolean/CNF/List.hs b/src/Data/Algebra/Boolean/CNF/List.hs
--- a/src/Data/Algebra/Boolean/CNF/List.hs
+++ b/src/Data/Algebra/Boolean/CNF/List.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE DeriveFoldable #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------
 -- |
 -- Copyright :  © Oleg Grenrus 2014
@@ -20,7 +21,11 @@
   ) where
 
 import Prelude hiding ((||),(&&),not,any,all,and,or)
+
+#if !MIN_VERSION_base(4,11,0)
 import Data.Monoid
+#endif
+
 import Data.Either (partitionEithers)
 import Data.Typeable (Typeable)
 import Data.Foldable (Foldable)
diff --git a/src/Data/Algebra/Boolean/CNF/Set.hs b/src/Data/Algebra/Boolean/CNF/Set.hs
--- a/src/Data/Algebra/Boolean/CNF/Set.hs
+++ b/src/Data/Algebra/Boolean/CNF/Set.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE DeriveFoldable #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------
 -- |
 -- Copyright :  © Oleg Grenrus 2014
@@ -19,7 +20,11 @@
   ) where
 
 import Prelude hiding ((||),(&&),not,and,or,any,all)
+
+#if !MIN_VERSION_base(4,11,0)
 import Data.Monoid
+#endif
+
 import Data.Typeable (Typeable)
 import Data.Foldable (Foldable)
 import Control.DeepSeq (NFData(rnf))
diff --git a/src/Data/Algebra/Boolean/DNF/List.hs b/src/Data/Algebra/Boolean/DNF/List.hs
--- a/src/Data/Algebra/Boolean/DNF/List.hs
+++ b/src/Data/Algebra/Boolean/DNF/List.hs
@@ -2,6 +2,7 @@
 {-# LANGUAGE DeriveFoldable #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------
 -- |
 -- Copyright :  © Oleg Grenrus 2014
@@ -20,7 +21,11 @@
   ) where
 
 import Prelude hiding ((||),(&&),not,any,all,and,or)
+
+#if !MIN_VERSION_base(4,11,0)
 import Data.Monoid
+#endif
+
 import Data.Either (partitionEithers)
 import Data.Typeable (Typeable)
 import Data.Foldable (Foldable)
diff --git a/src/Data/Algebra/Boolean/DNF/Set.hs b/src/Data/Algebra/Boolean/DNF/Set.hs
--- a/src/Data/Algebra/Boolean/DNF/Set.hs
+++ b/src/Data/Algebra/Boolean/DNF/Set.hs
@@ -1,6 +1,7 @@
 {-# LANGUAGE DeriveFoldable #-}
 {-# LANGUAGE DeriveDataTypeable #-}
 {-# LANGUAGE TypeFamilies #-}
+{-# LANGUAGE CPP #-}
 --------------------------------------------------------------------
 -- |
 -- Copyright :  © Oleg Grenrus 2014
@@ -19,7 +20,11 @@
   ) where
 
 import Prelude hiding ((||),(&&),not,and,or,any,all)
+
+#if !MIN_VERSION_base(4,11,0)
 import Data.Monoid
+#endif
+
 import Data.Typeable (Typeable)
 import Data.Foldable (Foldable)
 import Control.DeepSeq (NFData(rnf))
