projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
convert to use System.FilePath
[ghc-hetmet.git]
/
compiler
/
utils
/
Maybes.lhs
diff --git
a/compiler/utils/Maybes.lhs
b/compiler/utils/Maybes.lhs
index
f1f859a
..
af7d3f6
100644
(file)
--- a/
compiler/utils/Maybes.lhs
+++ b/
compiler/utils/Maybes.lhs
@@
-1,11
+1,11
@@
%
%
+% (c) The University of Glasgow 2006
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
% (c) The GRASP/AQUA Project, Glasgow University, 1992-1998
%
-\section[Maybes]{The `Maybe' types and associated utility functions}
\begin{code}
module Maybes (
\begin{code}
module Maybes (
- module Maybe, -- Re-export all of Maybe
+ module Data.Maybe, -- Re-export all of Maybe
MaybeErr(..), -- Instance of Monad
failME, isSuccess,
MaybeErr(..), -- Instance of Monad
failME, isSuccess,
@@
-17,13
+17,12
@@
module Maybes (
expectJust,
maybeToBool,
expectJust,
maybeToBool,
- thenMaybe, seqMaybe, returnMaybe, failMaybe
+ thenMaybe, seqMaybe, returnMaybe, failMaybe, fmapMMaybe
) where
#include "HsVersions.h"
) where
#include "HsVersions.h"
-import Maybe
-
+import Data.Maybe
infixr 4 `orElse`
\end{code}
infixr 4 `orElse`
\end{code}
@@
-101,6
+100,11
@@
failMaybe = Nothing
orElse :: Maybe a -> a -> a
(Just x) `orElse` y = x
Nothing `orElse` y = y
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}
\end{code}