diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+0.0.6
+
+* Add `foldTreeM_`
+
 0.0.5
 
 * Add `nodeA` constructor function
diff --git a/polytree.cabal b/polytree.cabal
--- a/polytree.cabal
+++ b/polytree.cabal
@@ -1,5 +1,5 @@
 name:                 polytree
-version:              0.0.5
+version:              0.0.6
 synopsis:             A polymorphic rose-tree
 description:          A rose-tree which has different data in the nodes and leaves
 license:              BSD3
diff --git a/src/Data/PolyTree.hs b/src/Data/PolyTree.hs
--- a/src/Data/PolyTree.hs
+++ b/src/Data/PolyTree.hs
@@ -27,6 +27,7 @@
 import Data.Bifoldable ( Bifoldable(bifoldMap) )
 import Data.Bifunctor ( Bifunctor(bimap) )
 import Data.Bitraversable ( Bitraversable(..) )
+import Data.Functor ( void )
 import Data.Functor.Apply ( Apply((<.>)) )
 import Data.Functor.Bind ( Bind((>>-)) )
 import Data.Functor.Classes
@@ -439,6 +440,15 @@
   l b
 foldTreeM l n (Node a t) =
   traverse (foldTreeM l n) t >>= n a
+
+foldTreeM_ ::
+  (Monad m, Traversable f) =>
+  (b -> m x) ->
+  (a -> f x -> m x)
+  -> Tree f a b
+  -> m ()
+foldTreeM_ l n t =
+  void (foldTreeM l n t)
 
 -- |
 --
