projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Template Haskell: support for type family declarations
[ghc-hetmet.git]
/
compiler
/
utils
/
MonadUtils.hs
diff --git
a/compiler/utils/MonadUtils.hs
b/compiler/utils/MonadUtils.hs
index
2064657
..
733eda1
100644
(file)
--- a/
compiler/utils/MonadUtils.hs
+++ b/
compiler/utils/MonadUtils.hs
@@
-19,6
+19,7
@@
module MonadUtils
, mapMaybeM
, anyM, allM
, foldlM, foldrM
, mapMaybeM
, anyM, allM
, foldlM, foldrM
+ , maybeMapM
) where
----------------------------------------------------------------------------------------
) where
----------------------------------------------------------------------------------------
@@
-149,3
+150,8
@@
foldlM = foldM
foldrM :: (Monad m) => (b -> a -> m a) -> a -> [b] -> m a
foldrM _ z [] = return z
foldrM k z (x:xs) = do { r <- foldrM k z xs; k x r }
foldrM :: (Monad m) => (b -> a -> m a) -> a -> [b] -> m a
foldrM _ z [] = return z
foldrM k z (x:xs) = do { r <- foldrM k z xs; k x r }
+
+-- | Monadic version of fmap specialised for Maybe
+maybeMapM :: Monad m => (a -> m b) -> (Maybe a -> m (Maybe b))
+maybeMapM _ Nothing = return Nothing
+maybeMapM m (Just x) = liftM Just $ m x