X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Frename%2FRnMonad.lhs;h=0d1ffae0e4fedfdf648b630e8c45965e4789e3c5;hb=8fb61d0a36abdaf5e082569c9e4b3e828a79e4fc;hp=99cc7168269eb1e38ed831b575a09a3e2dbe4083;hpb=9f6cdd5da3a1556a34d66a7e5b39c1d7ba086fff;p=ghc-hetmet.git diff --git a/ghc/compiler/rename/RnMonad.lhs b/ghc/compiler/rename/RnMonad.lhs index 99cc716..0d1ffae 100644 --- a/ghc/compiler/rename/RnMonad.lhs +++ b/ghc/compiler/rename/RnMonad.lhs @@ -494,6 +494,7 @@ andRn :: (a -> a -> a) -> RnM d a -> RnM d a -> RnM d a mapRn :: (a -> RnM d b) -> [a] -> RnM d [b] mapRn_ :: (a -> RnM d b) -> [a] -> RnM d () mapMaybeRn :: (a -> RnM d (Maybe b)) -> [a] -> RnM d [b] +flatMapRn :: (a -> RnM d [b]) -> [a] -> RnM d [b] sequenceRn :: [RnM d a] -> RnM d [a] foldlRn :: (b -> a -> RnM d b) -> b -> [a] -> RnM d b mapAndUnzipRn :: (a -> RnM d (b,c)) -> [a] -> RnM d ([b],[c]) @@ -546,6 +547,11 @@ mapMaybeRn f (x:xs) = f x `thenRn` \ maybe_r -> case maybe_r of Nothing -> returnRn rs Just r -> returnRn (r:rs) + +flatMapRn f [] = returnRn [] +flatMapRn f (x:xs) = f x `thenRn` \ r -> + flatMapRn f xs `thenRn` \ rs -> + returnRn (r ++ rs) \end{code}