From: simonpj@microsoft.com Date: Thu, 23 Jul 2009 06:49:32 +0000 (+0000) Subject: Add fmapM_maybe :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b) X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=a4cb65161fd2c34e4455985490220bdf5d30cbe5 Add fmapM_maybe :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b) This function isn't used at the moment, but Max added it, and it looks useful. --- diff --git a/compiler/utils/Maybes.lhs b/compiler/utils/Maybes.lhs index 8a6a5f4..1f443db 100644 --- a/compiler/utils/Maybes.lhs +++ b/compiler/utils/Maybes.lhs @@ -10,6 +10,7 @@ module Maybes ( MaybeErr(..), -- Instance of Monad failME, isSuccess, + fmapM_maybe, orElse, mapCatMaybes, allMaybes, @@ -74,6 +75,14 @@ orElse :: Maybe a -> a -> a Nothing `orElse` y = y \end{code} +\begin{code} +fmapM_maybe :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b) +fmapM_maybe _ Nothing = return Nothing +fmapM_maybe f (Just x) = do + x' <- f x + return $ Just x' +\end{code} + %************************************************************************ %* * \subsection[MaybeT type]{The @MaybeT@ monad transformer}