
Hi Mario, On 2014-04-20 at 21:10:03 +0200, Mario Pastorelli wrote:
I would like to propose the addition of two new combinators to Control.Monad:
ifM :: (Monad m) => m Bool -> m a -> m a -> m a whenM :: (Monad m) => m Bool -> m () -> m ()
[...]
f = do dirDoesntExist <- not <$> doesDirectoryExist path when dirDoesntExist $ do putStrLn $ "Creating directory " ++ path createDirectory path
While I'm neutral on this proposal, I'd like to remind that LambdaCase may be useful to avoid temporary variables as well (and is even more useful for types other than Bool): f = doesDirectoryExist path >>= \case True -> return () False -> do putStrLn $ "Creating directory " ++ path createDirectory path Cheers, hvr