[Remove some unnecessary monadic mode.
Lemmih <lemmih@gmail.com>**20081125231452
 Ignore-this: 8e25a27eaac0d8ff4af8abf8888d540d
] hunk ./FrontEnd/Class.hs 466
-scatterAliasInstances :: MonadIO m => ClassHierarchy -> m ClassHierarchy
-scatterAliasInstances ch = do
+scatterAliasInstances :: ClassHierarchy -> ClassHierarchy
+scatterAliasInstances ch =
hunk ./FrontEnd/Class.hs 470
-    let instances = concatMap scatterInstancesOf cas
-    let ret = foldr (modifyClassRecord $ \cr -> cr 
+        instances = concatMap scatterInstancesOf cas
+        ret = foldr (modifyClassRecord $ \cr -> cr 
hunk ./FrontEnd/Class.hs 479
-    return ret
+    in ret
hunk ./FrontEnd/Class.hs 496
-makeClassHierarchy :: Monad m => ClassHierarchy -> KindEnv -> [HsDecl] -> m ClassHierarchy
-makeClassHierarchy (ClassHierarchy ch) kt ds = return (ClassHierarchy ans) where
+makeClassHierarchy :: ClassHierarchy -> KindEnv -> [HsDecl] -> ClassHierarchy
+makeClassHierarchy (ClassHierarchy ch) kt ds = (ClassHierarchy ans) where
hunk ./FrontEnd/Infix.hs 71
-infixHsModule :: Monad m => FixityMap -> HsModule -> m HsModule
-infixHsModule (FixityMap ism) m = return $ hsModuleDecls_u f m where
+infixHsModule :: FixityMap -> HsModule -> HsModule
+infixHsModule (FixityMap ism) m = hsModuleDecls_u f m where
hunk ./FrontEnd/Infix.hs 76
-infixStatement :: Monad m => FixityMap -> HsStmt -> m HsStmt
-infixStatement (FixityMap ism) m = return $ processStmt ism m
+infixStatement :: FixityMap -> HsStmt -> HsStmt
+infixStatement (FixityMap ism) m = processStmt ism m
hunk ./FrontEnd/Tc/Module.hs 85
+    -- driftDerive only uses IO to print the derived instances.
hunk ./FrontEnd/Tc/Module.hs 103
+-- FIXME: Use an warnings+writer+error monad instead of IO.
hunk ./FrontEnd/Tc/Module.hs 115
+    -- 'processModule' doesn't need IO. We can use a plain writer+error monad.
hunk ./FrontEnd/Tc/Module.hs 121
-    let f x = expandTypeSyns ts (modInfoHsModule x) >>= FrontEnd.Infix.infixHsModule fixityMap >>= \z -> return (modInfoHsModule_s ( z) x)
+    -- 'expandTypeSyns' is in the Warning monad and doesn't require IO.
+    let f x = expandTypeSyns ts (modInfoHsModule x) >>= return . FrontEnd.Infix.infixHsModule fixityMap >>= \z -> return (modInfoHsModule_s ( z) x)
hunk ./FrontEnd/Tc/Module.hs 155
-    smallClassHierarchy <- makeClassHierarchy importClassHierarchy kindInfo ds
-    cHierarchyWithInstances <- scatterAliasInstances $ smallClassHierarchy `mappend` importClassHierarchy
+    let smallClassHierarchy = makeClassHierarchy importClassHierarchy kindInfo ds
+    let cHierarchyWithInstances = scatterAliasInstances $ smallClassHierarchy `mappend` importClassHierarchy
hunk ./Interactive.hs 185
-    stmt''' <- FrontEnd.Infix.infixStatement (hoFixities hoB) stmt''
+    stmt''' <- return $ FrontEnd.Infix.infixStatement (hoFixities hoB) stmt''