From 442202dd6d2ede66b35843f8e4708624041d25b0 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Mon, 2 Jan 2012 11:01:08 -0400 Subject: add a new useful thing --- Utility/Monad.hs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'Utility') diff --git a/Utility/Monad.hs b/Utility/Monad.hs index 0d1675fa4..9e2a16e8c 100644 --- a/Utility/Monad.hs +++ b/Utility/Monad.hs @@ -28,3 +28,11 @@ 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 + +{- Runs a monadic action, passing its value to an observer + - before returning it. -} +observe :: (Monad m) => (a -> m b) -> m a -> m a +observe observer a = do + r <- a + _ <- observer r + return r -- cgit v1.2.3