diff --git a/UtilityTM.cabal b/UtilityTM.cabal
--- a/UtilityTM.cabal
+++ b/UtilityTM.cabal
@@ -1,5 +1,5 @@
 Name:               UtilityTM
-Version:            0.0.1
+Version:            0.0.2
 License:            BSD3
 License-File:       LICENSE
 Author:             Tony Morris <ʇǝu˙sıɹɹoɯʇ@ןןǝʞsɐɥ>
diff --git a/src/Control/Monad/TM.hs b/src/Control/Monad/TM.hs
--- a/src/Control/Monad/TM.hs
+++ b/src/Control/Monad/TM.hs
@@ -1,8 +1,10 @@
 -- | Monadic combinators missing from the standard library
 module Control.Monad.TM
 (
-  (.>>=.)
-, (.=<<.)
+  (.=<<.)
+,  (.>>=.)
+, anyM
+, allM
 ) where
 
 import Data.Traversable
@@ -10,19 +12,47 @@
 import Prelude hiding (mapM)
 
 -- | Lifting bind into a monad. Often denoted /concatMapM/.
-(.>>=.) ::
+(.=<<.) ::
   (Monad q, Monad m, Traversable m) =>
   (a -> q (m b))
   -> m a
   -> q (m b)
-(.>>=.) f =
+(.=<<.) f =
   liftM join . mapM f
 
 -- | Lifting bind into a monad. Often denoted /concatMapM/.
-(.=<<.) ::
+(.>>=.) ::
   (Monad q, Monad m, Traversable m) =>
   m a
   -> (a -> q (m b))
   -> q (m b)
-(.=<<.) =
-  flip (.>>=.)
+(.>>=.) =
+  flip (.=<<.)
+
+-- | Existential quantification.
+anyM ::
+  Monad m =>
+  (a -> m Bool)
+  -> [a]
+  -> m Bool
+anyM _ []     =
+  return False
+anyM f (a:as) =
+  do z <- f a
+     if z
+       then return True
+       else anyM f as
+
+-- | Universal quantification.
+allM ::
+  Monad m =>
+  (a -> m Bool)
+  -> [a]
+  -> m Bool
+allM _ []     =
+  return True
+allM f (a:as) =
+  do z <- f a
+     if z
+       then allM f as
+       else return False
