summaryrefslogtreecommitdiff
path: root/Utility/Monad.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Utility/Monad.hs')
-rw-r--r--Utility/Monad.hs4
1 files changed, 4 insertions, 0 deletions
diff --git a/Utility/Monad.hs b/Utility/Monad.hs
index 9523e1716..0d1675fa4 100644
--- a/Utility/Monad.hs
+++ b/Utility/Monad.hs
@@ -24,3 +24,7 @@ firstM p (x:xs) = do
- stopping once one is found. -}
anyM :: (Monad m) => (a -> m Bool) -> [a] -> m Bool
anyM p = liftM isJust . firstM p
+
+{- Runs an action on values from a list until it succeeds. -}
+untilTrue :: (Monad m) => [a] -> (a -> m Bool) -> m Bool
+untilTrue = flip anyM