diff --git a/mono-traversable.cabal b/mono-traversable.cabal
--- a/mono-traversable.cabal
+++ b/mono-traversable.cabal
@@ -1,5 +1,5 @@
 name:                mono-traversable
-version:             0.5.0
+version:             0.6.0
 synopsis:            Type classes for mapping, folding, and traversing monomorphic containers
 description:         Monomorphic variants of the Functor, Foldable, and Traversable typeclasses. Contains even more experimental code for abstracting containers and sequences.
 homepage:            https://github.com/snoyberg/mono-traversable
diff --git a/src/Data/MonoTraversable.hs b/src/Data/MonoTraversable.hs
--- a/src/Data/MonoTraversable.hs
+++ b/src/Data/MonoTraversable.hs
@@ -257,11 +257,11 @@
     ofor_ = flip otraverse_
     {-# INLINE ofor_ #-}
 
-    omapM_ :: (MonoFoldable mono, Monad m) => (Element mono -> m b) -> mono -> m ()
+    omapM_ :: (MonoFoldable mono, Monad m) => (Element mono -> m ()) -> mono -> m ()
     omapM_ f = ofoldr ((>>) . f) (return ())
     {-# INLINE omapM_ #-}
 
-    oforM_ :: (MonoFoldable mono, Monad m) => mono -> (Element mono -> m b) -> m ()
+    oforM_ :: (MonoFoldable mono, Monad m) => mono -> (Element mono -> m ()) -> m ()
     oforM_ = flip omapM_
     {-# INLINE oforM_ #-}
 
@@ -479,7 +479,7 @@
     {-# INLINE otoList #-}
 instance MonoFoldable (Maybe a) where
     omapM_ _ Nothing = return ()
-    omapM_ f (Just x) = f x >> return ()
+    omapM_ f (Just x) = f x
     {-# INLINE omapM_ #-}
 instance MonoFoldable (Tree a)
 instance MonoFoldable (Seq a) where
@@ -621,6 +621,8 @@
     ofoldr1Ex _ (Right x) = x
     ofoldl1Ex' _ (Left _) = Prelude.error "ofoldl1Ex' on Either"
     ofoldl1Ex' _ (Right x) = x
+    omapM_ _ (Left _) = return ()
+    omapM_ f (Right x) = f x
     {-# INLINE ofoldMap #-}
     {-# INLINE ofoldr #-}
     {-# INLINE ofoldl' #-}
@@ -659,6 +661,20 @@
 oproduct :: (MonoFoldable mono, Num (Element mono)) => mono -> Element mono
 oproduct = ofoldl' (*) 1
 {-# INLINE oproduct #-}
+
+-- | Are all of the values @True@?
+--
+-- Since 0.6.0
+oand :: (Element mono ~ Bool, MonoFoldable mono) => mono -> Bool
+oand = oall id
+{-# INLINE oand #-}
+
+-- | Are any of the values @True@?
+--
+-- Since 0.6.0
+oor :: (Element mono ~ Bool, MonoFoldable mono) => mono -> Bool
+oor = oany id
+{-# INLINE oor #-}
 
 class (MonoFoldable mono, Monoid mono) => MonoFoldableMonoid mono where -- FIXME is this really just MonoMonad?
     oconcatMap :: (Element mono -> mono) -> mono -> mono
