diff --git a/recursion-schemes-ext.cabal b/recursion-schemes-ext.cabal
--- a/recursion-schemes-ext.cabal
+++ b/recursion-schemes-ext.cabal
@@ -1,5 +1,5 @@
 name:                recursion-schemes-ext
-version:             0.2.0.0
+version:             0.2.0.1
 synopsis:            Amateur addenda to recursion-schemes
 description:         This package provides some exotic recursion schemes that I miss when I leave Idris.
 homepage:            https://hub.darcs.net/vmchale/recursion-schemes-ext#readme
diff --git a/src/Data/Functor/Foldable/Exotic.hs b/src/Data/Functor/Foldable/Exotic.hs
--- a/src/Data/Functor/Foldable/Exotic.hs
+++ b/src/Data/Functor/Foldable/Exotic.hs
@@ -29,7 +29,6 @@
 
 import           Control.Arrow
 import           Control.Composition
-import           Control.Monad
 import           Data.Functor.Foldable
 
 -- | Class that yields g-algebra homomorphisms between mutually recursive types.
@@ -105,12 +104,12 @@
 
 -- | A monadic catamorphism
 cataM :: (Recursive t, Traversable (Base t), Monad m) => (Base t a -> m a) -> (t -> m a)
-cataM phi = fix (fmap (phi <=<) (project -.* mapM))
+cataM phi = c where c = phi <=< (mapM c . project)
 
 -- | A monadic anamorphism
 anaM :: (Corecursive t, Traversable (Base t), Monad m) => (a -> m (Base t a)) -> (a -> m t)
-anaM = fix (fmap embed .** ((=<<) .* fmap traverse >=> fmap))
+anaM psi = a where a = (fmap embed . mapM a) <=< psi
 
 -- | A monadic hylomorphism
 hyloM :: (Functor f, Monad m, Traversable f) => (f b -> m b) -> (a -> m (f a)) -> a -> m b
-hyloM = fix (fmap (`flip` id) (ap .* ((<=<) .** (liftM2 fmap (<=<) <$> (mapM .*)))))
+hyloM phi psi = h where h = phi <=< mapM h <=< psi
