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.5.0 -- 2020-05-14
+
+* add mutuM and comutuM with the other variant, which has not the same type signature.
+
 ## 0.1.4.2 -- 2020-05-14
 
 * add comment.
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.4.2
+version:             0.1.5.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
@@ -19,6 +19,8 @@
   , dynaM, codynaM
   , dynaM', codynaM'
   , dynaM'', codynaM''
+  , mutuM, comutuM
+  , mutuM', comutuM'
   ) where
 
 import           Control.Comonad              (Comonad (..))
@@ -207,3 +209,33 @@
 codynaM'' phi psi = hyloM phi g . Pure
   where g (Pure  a) = psi a
         g (Free fb) = return fb
+
+-- | mutumorphism on mutual recursive
+mutuM :: (Monad m, Traversable (Base t), Recursive t)
+      => (Base t (a, a) -> m a) -- ^ algebra
+      -> (Base t (a, a) -> m a) -- ^ algebra
+      -> t -> m a
+mutuM f g = g <=< mapM (liftM2 (,) <$> mutuM g f <*> mutuM f g) . project
+
+-- | mutumorphism on recursive variant over catamorphism
+mutuM' :: (Monad m, Traversable (Base t), Recursive t)
+       => (a -> b)          -- ^ project
+       -> (Base t a -> m a) -- ^ algebra
+       -> t -> m b
+mutuM' f phi = return . f <=< cataM phi
+
+-- | comutumorphism on comutual recursive
+comutuM :: (Monad m, Traversable (Base t), Corecursive t)
+        => (a -> m (Base t (Either a a))) -- ^ coalgebra
+        -> (a -> m (Base t (Either a a))) -- ^ coalgebra
+        -> a -> m t
+comutuM f g = fmap embed . mapM (either (comutuM g f) (comutuM f g)) <=< g
+
+-- | comutumorphism on recursive variant over anamorphism
+comutuM' :: (Monad m, Traversable (Base t), Corecursive t)
+         => (b -> a)            -- ^ embed
+         -> (a -> m (Base t a)) -- ^ coalgebra
+         -> b -> m t
+comutuM' f psi = anaM psi . f
+
+
