diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,7 @@
+Version 0.4.1
+---------------
+* Adjustments for monoid-subclasses-1.0
+
 Version 0.4.0.1
 ---------------
 * Added missing markdown-unlit dependency
diff --git a/grammatical-parsers.cabal b/grammatical-parsers.cabal
--- a/grammatical-parsers.cabal
+++ b/grammatical-parsers.cabal
@@ -1,5 +1,5 @@
 name:                grammatical-parsers
-version:             0.4.0.1
+version:             0.4.1
 synopsis:            parsers that combine into grammars
 description:
   /Gram/matical-/pa/rsers, or Grampa for short, is a library of parser types whose values are meant to be assigned
@@ -39,7 +39,7 @@
   build-depends:       base >=4.9 && <5,
                        containers >= 0.4 && < 0.7,
                        transformers >= 0.5 && < 0.6,
-                       monoid-subclasses >=0.4 && <0.5,
+                       monoid-subclasses >=0.4 && <1.1,
                        parsers < 0.13,
                        rank2classes >= 1.0.2 && < 1.4
 
@@ -51,14 +51,14 @@
   build-depends:       base >=4.9 && <5, containers >= 0.5.7.0 && < 0.7,
                        parsers < 0.13,
                        rank2classes >= 1.0.2 && < 1.4, grammatical-parsers,
-                       monoid-subclasses >=0.4 && <0.5
+                       monoid-subclasses >=0.4 && <1.1
 
 test-suite           quicktests
   type:              exitcode-stdio-1.0
   hs-source-dirs:    test, examples
   x-uses-tf:         true
   build-depends:     base >=4.9 && < 5, containers >= 0.5.7.0 && < 0.7,
-                     monoid-subclasses < 0.5, parsers < 0.13,
+                     monoid-subclasses < 1.1, parsers < 0.13,
                      rank2classes >= 1.0.2 && < 1.4, grammatical-parsers,
                      QuickCheck >= 2 && < 3, checkers >= 0.4.6 && < 0.5, size-based < 0.2,
                      testing-feat >= 1.1 && < 1.2,
@@ -82,7 +82,7 @@
   hs-source-dirs:    test, examples
   ghc-options:       -O2 -Wall -rtsopts -main-is Benchmark.main
   Build-Depends:     base >=4.9 && < 5, rank2classes >= 1.0.2 && < 1.4, grammatical-parsers,
-                     monoid-subclasses >=0.4 && <0.5, parsers < 0.13,
+                     monoid-subclasses >=0.4 && <1.1, parsers < 0.13,
                      criterion >= 1.0, deepseq >= 1.1, containers >= 0.5.7.0 && < 0.7, text >= 1.1
   main-is:           Benchmark.hs
   other-modules:     Main, Arithmetic, Boolean, Combined, Comparisons, Conditionals, Lambda, Utilities
diff --git a/src/Text/Grampa/ContextFree/Memoizing.hs b/src/Text/Grampa/ContextFree/Memoizing.hs
--- a/src/Text/Grampa/ContextFree/Memoizing.hs
+++ b/src/Text/Grampa/ContextFree/Memoizing.hs
@@ -13,9 +13,9 @@
 import Data.List (genericLength, maximumBy, nub)
 import Data.Semigroup (Semigroup(..))
 import Data.Monoid (Monoid(mappend, mempty))
-import Data.Monoid.Cancellative (LeftReductiveMonoid (isPrefixOf))
+import Data.Monoid.Cancellative (LeftReductiveMonoid, isPrefixOf)
 import Data.Monoid.Null (MonoidNull(null))
-import Data.Monoid.Factorial (FactorialMonoid(length, splitPrimePrefix))
+import Data.Monoid.Factorial (FactorialMonoid, length, splitPrimePrefix)
 import Data.Monoid.Textual (TextualMonoid)
 import qualified Data.Monoid.Factorial as Factorial
 import qualified Data.Monoid.Textual as Textual
diff --git a/src/Text/Grampa/ContextFree/SortedMemoizing.hs b/src/Text/Grampa/ContextFree/SortedMemoizing.hs
--- a/src/Text/Grampa/ContextFree/SortedMemoizing.hs
+++ b/src/Text/Grampa/ContextFree/SortedMemoizing.hs
@@ -12,9 +12,9 @@
 import Data.List.NonEmpty (NonEmpty((:|)))
 import Data.Semigroup (Semigroup(..))
 import Data.Monoid (Monoid(mappend, mempty))
-import Data.Monoid.Cancellative (LeftReductiveMonoid (isPrefixOf))
+import Data.Monoid.Cancellative (LeftReductiveMonoid, isPrefixOf)
 import Data.Monoid.Null (MonoidNull(null))
-import Data.Monoid.Factorial (FactorialMonoid(splitPrimePrefix))
+import Data.Monoid.Factorial (FactorialMonoid, splitPrimePrefix)
 import Data.Monoid.Textual (TextualMonoid)
 import qualified Data.Monoid.Factorial as Factorial
 import qualified Data.Monoid.Textual as Textual
diff --git a/src/Text/Grampa/Internal.hs b/src/Text/Grampa/Internal.hs
--- a/src/Text/Grampa/Internal.hs
+++ b/src/Text/Grampa/Internal.hs
@@ -7,7 +7,7 @@
 import Data.Monoid (Monoid(mappend, mempty))
 import Data.Semigroup (Semigroup((<>)))
 
-import Data.Monoid.Factorial (FactorialMonoid(length))
+import Data.Monoid.Factorial (FactorialMonoid, length)
 
 import Text.Grampa.Class (ParseFailure(..), ParseResults)
 
diff --git a/test/Test.hs b/test/Test.hs
--- a/test/Test.hs
+++ b/test/Test.hs
@@ -10,9 +10,9 @@
 import Data.List.NonEmpty (NonEmpty((:|)))
 import Data.Semigroup (Semigroup, (<>))
 import Data.Monoid (Monoid(..), Product(..))
-import Data.Monoid.Cancellative (LeftReductiveMonoid(..))
+import Data.Monoid.Cancellative (LeftReductiveMonoid, isPrefixOf)
 import Data.Monoid.Null (MonoidNull(null))
-import Data.Monoid.Factorial (FactorialMonoid(factors))
+import Data.Monoid.Factorial (FactorialMonoid, factors)
 import Data.Monoid.Textual (TextualMonoid(toString))
 import Data.Typeable (Typeable)
 import Data.Word (Word8, Word64)
