diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,5 +1,9 @@
 # Revision history for monadic-recursion-schemes
 
+## 0.1.9.0 -- 2020-05-16
+
+* add iterateM (as dual of cascadeM)
+
 ## 0.1.8.0 -- 2020-05-16
 
 * add cascadeM (a.k.a. supermap).
diff --git a/monadic-recursion-schemes.cabal b/monadic-recursion-schemes.cabal
--- a/monadic-recursion-schemes.cabal
+++ b/monadic-recursion-schemes.cabal
@@ -4,7 +4,7 @@
 -- http://haskell.org/cabal/users-guide/
 
 name:                monadic-recursion-schemes
-version:             0.1.8.0
+version:             0.1.9.0
 synopsis:            Recursion Schemes for Monadic version.
 description:         Yet another recursion schemes for monadic style, depends on recursion-schemes.
 homepage:            https://github.com/cutsea110/monadic-recursion-schemes.git
diff --git a/src/Data/Functor/Foldable/Monadic.hs b/src/Data/Functor/Foldable/Monadic.hs
--- a/src/Data/Functor/Foldable/Monadic.hs
+++ b/src/Data/Functor/Foldable/Monadic.hs
@@ -22,7 +22,7 @@
   , mutuM, comutuM
   , mutuM', comutuM'
   , preproM, postproM
-  , cascadeM
+  , cascadeM, iterateM
   ) where
 
 import           Control.Comonad              (Comonad (..))
@@ -264,7 +264,14 @@
 
 -- | cascade (a.k.a supermap)
 cascadeM :: (Monad m, Corecursive (f a), Traversable (Base (f a)), Traversable f, Recursive (f a))
-         => (a -> m a) -- ^ operator
+         => (a -> m a) -- ^ pre-operator
          -> f a -> m (f a)
 cascadeM f = u
   where u = return . embed <=< mapM u <=< mapM (mapM f) . project
+
+-- | iterate
+iterateM :: (Monad m, Corecursive (f a), Traversable (Base (f a)), Traversable f, Recursive (f a))
+         => (a -> m a) -- ^ post-operator
+         -> f a -> m (f a)
+iterateM f = u
+  where u = return . embed <=< mapM (mapM f) <=< mapM u . project
