X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Futils%2FMaybes.lhs;h=1f443db28d6b83202044e3543e9497c5f5f7cca2;hb=e9f9ec1e57d53b9302a395ce0d02c0fa59e28341;hp=8a6a5f441e2db9fc62b4345047c70d605984c803;hpb=3659ebdaca5124c4efb9dd9e8894054d34187deb;p=ghc-hetmet.git 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}