X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Futils%2FMaybes.lhs;h=af7d3f6ca51c3e3fecfc88dcf6a26426702d969e;hb=8100c58a929d993d2dd7022412ed6113cf97fba7;hp=7d1fa4e306957a69621b81c695c7b06a4afb65d0;hpb=046ee54f048ddd721dcee41916d6a6f68db3b15b;p=ghc-hetmet.git diff --git a/compiler/utils/Maybes.lhs b/compiler/utils/Maybes.lhs index 7d1fa4e..af7d3f6 100644 --- a/compiler/utils/Maybes.lhs +++ b/compiler/utils/Maybes.lhs @@ -17,7 +17,7 @@ module Maybes ( expectJust, maybeToBool, - thenMaybe, seqMaybe, returnMaybe, failMaybe + thenMaybe, seqMaybe, returnMaybe, failMaybe, fmapMMaybe ) where #include "HsVersions.h" @@ -100,6 +100,11 @@ failMaybe = Nothing orElse :: Maybe a -> a -> a (Just x) `orElse` y = x Nothing `orElse` y = y + +fmapMMaybe :: Monad m => (a -> m b) -> Maybe a -> m (Maybe b) +fmapMMaybe f Nothing = return Nothing +fmapMMaybe f (Just x) = f x >>= \x' -> return (Just x') + \end{code}