From: sof Date: Tue, 25 Nov 1997 14:16:15 +0000 (+0000) Subject: [project @ 1997-11-25 14:16:15 by sof] X-Git-Tag: Approx_2487_patches~1232 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=7e1039d5c5521a36a0c4f149f8e5471666c8a4ea;p=ghc-hetmet.git [project @ 1997-11-25 14:16:15 by sof] Added mapMaybeRn --- diff --git a/ghc/compiler/rename/RnMonad.lhs b/ghc/compiler/rename/RnMonad.lhs index 6385182..be7fda3 100644 --- a/ghc/compiler/rename/RnMonad.lhs +++ b/ghc/compiler/rename/RnMonad.lhs @@ -405,6 +405,7 @@ thenRn :: RnM s d a -> (a -> RnM s d b) -> RnM s d b thenRn_ :: RnM s d a -> RnM s d b -> RnM s d b andRn :: (a -> a -> a) -> RnM s d a -> RnM s d a -> RnM s d a mapRn :: (a -> RnM s d b) -> [a] -> RnM s d [b] +mapMaybeRn :: (a -> RnM s d b) -> b -> Maybe a -> RnM s d b sequenceRn :: [RnM s d a] -> RnM s d [a] foldlRn :: (b -> a -> RnM s d b) -> b -> [a] -> RnM s d b mapAndUnzipRn :: (a -> RnM s d (b,c)) -> [a] -> RnM s d ([b],[c]) @@ -445,6 +446,9 @@ mapAndUnzip3Rn f (x:xs) = f x `thenRn` \ (r1, r2, r3) -> mapAndUnzip3Rn f xs `thenRn` \ (rs1, rs2, rs3) -> returnRn (r1:rs1, r2:rs2, r3:rs3) + +mapMaybeRn f def Nothing = returnRn def +mapMaybeRn f def (Just v) = f v \end{code}