Also replace stuff in the case scrutineer
authorJoachim Breitner <mail@joachim-breitner.de>
Wed, 10 Jul 2013 14:09:16 +0000 (16:09 +0200)
committerJoachim Breitner <mail@joachim-breitner.de>
Wed, 10 Jul 2013 14:09:16 +0000 (16:09 +0200)
GHC/NT/Plugin.hs

index 775d19c..130ecbd 100644 (file)
@@ -274,7 +274,7 @@ traverse f e
         Cast e co            -> Cast <$> traverse f e <*> (return co)
         Lam b e              -> Lam b <$> traverse f e
         Let bind e           -> Let <$> traverseBind f bind <*> traverse f e
-        Case scrut bndr ty alts -> Case scrut bndr ty <$> mapM (\(a,b,c) -> (a,b,) <$> traverse f c) alts 
+        Case scrut bndr ty alts -> Case <$> traverse f scrut <*> pure bndr <*> pure ty <*> mapM (\(a,b,c) -> (a,b,) <$> traverse f c) alts 
     where f' x = do
             r <- f x
             return (fromMaybe x r)