diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -7,13 +7,16 @@
 
 # Changelog
 
+* 0.5.0.0
+  - Support data-diverse-2.0.0.0.
+
 * 0.4.0.0
   - Added PNullary and PUnary injective type families.
 
 * 0.3.0.0
   - PMonoid is now a class with a single instance (courtesy of georgew).
   - added fixities for backtick versions of pmappend, pappend, papply and pbind
-  - added changingState constructor which results in better type inference.
+  - added changingState constructor which sults in better type inference.
 
 * 0.2.0.0
   - Renamed Pempty to PEmpty.
diff --git a/parameterized.cabal b/parameterized.cabal
--- a/parameterized.cabal
+++ b/parameterized.cabal
@@ -1,5 +1,5 @@
 name:                parameterized
-version:             0.4.0.0
+version:             0.5.0.0
 synopsis:            Parameterized/indexed monoids and monads using only a single parameter type variable.
 description:         Parameterized/indexed monoids and monads using only a single parameter type variable.
 
@@ -25,7 +25,7 @@
                        Parameterized.Control.Monad.Trans.Reader
                        Parameterized.Control.Monad.Trans.State.Strict
   build-depends:       base >= 4.7 && < 5
-                     , data-diverse >= 1.2.0.3
+                     , data-diverse >= 2.0.0.0
                      , transformers >= 0.5.2.0
   ghc-options:         -Wall
   default-language:    Haskell2010
@@ -39,7 +39,7 @@
   build-depends:       base
                      , parameterized
                      , hspec >= 2
-                     , data-diverse >= 1.2.0.3
+                     , data-diverse >= 2.0.0.0
                      , transformers >= 0.5.2.0
   ghc-options:         -threaded -rtsopts -with-rtsopts=-N -Wall
   default-language:    Haskell2010
diff --git a/src/Parameterized/Control/Monad/Trans/State/Strict.hs b/src/Parameterized/Control/Monad/Trans/State/Strict.hs
--- a/src/Parameterized/Control/Monad/Trans/State/Strict.hs
+++ b/src/Parameterized/Control/Monad/Trans/State/Strict.hs
@@ -49,25 +49,25 @@
 instance ( Monad m
          , Select a c
          , Select b c
-         , Amend a c
-         , Amend b c
+         , Amend' a c
+         , Amend' b c
          , c ~ AppendUnique a b
          ) =>
          PApplicative (ManyState m) (Many a) (Many b) (Many c) where
     papply (ManyState (StateT x)) (ManyState (StateT y)) =
         ManyState . StateT $ \c -> do
              (f, a) <- x (select c)
-             let c' = amend c a
+             let c' = amend' c a
              (r, b) <- y (select c')
-             let c'' = amend c' b
+             let c'' = amend' c' b
              pure (f r, c'')
 
 instance ( Monad m
          , Alternative m
          , Select a c
          , Select b c
-         , Amend a c
-         , Amend b c
+         , Amend' a c
+         , Amend' b c
          , c ~ AppendUnique a b
          ) =>
          PAlternative (ManyState m) (Many a) (Many b) (Many c) where
@@ -76,26 +76,26 @@
       where
         x' c = do
             (r, a) <- x (select c)
-            pure (r, amend c a)
+            pure (r, amend' c a)
         y' c = do
             (r, b) <- y (select c)
-            pure (r, amend c b)
+            pure (r, amend' c b)
 
 instance ( Monad m
          , Select a c
          , Select b c
-         , Amend a c
-         , Amend b c
+         , Amend' a c
+         , Amend' b c
          , c ~ AppendUnique a b
          ) =>
          PMonad (ManyState m) (Many a) (Many b) (Many c) where
     pbind (ManyState (StateT x)) k =
         ManyState . StateT $ \c -> do
              (r, a) <- x (select c)
-             let c' = amend c a
+             let c' = amend' c a
                  ManyState (StateT y) = k r
              (r', b) <- y (select c')
-             let c'' = amend c' b
+             let c'' = amend' c' b
              pure (r', c'')
 
 --------------------------------------------
