[added HsLet, HsDo, and HsLocated to syntax traversal code
John Meacham <john@repetae.net>**20090228023728
 Ignore-this: 6e34d0e65b4ccb866d228c0a56e3e8e6
] hunk ./FrontEnd/Syn/Traverse.hs 108
+    f (HsLocatedExp le) = HsLocatedExp `liftM` fnl le
+    f (HsLet hsDecls hsExp)  = do
+        ds <- mapM (traverseHsDeclHsExp fn) hsDecls
+        e <- fn hsExp
+        return $ HsLet ds e
+    f (HsDo hsStmts)  = HsDo `liftM` mapM (traverseHsStmtHsExp fn) hsStmts
hunk ./FrontEnd/Syn/Traverse.hs 118
-    fnl (Located l e) = Located l `liftM` fn e
+    fnl (Located l e) = withSrcSpan l $ Located l `liftM` fn e
hunk ./FrontEnd/Syn/Traverse.hs 225
-    fnl (Located l e) = Located l `liftM` fn e
+    fnl (Located l e) = withSrcSpan l (Located l `liftM` fn e)
hunk ./FrontEnd/Syn/Traverse.hs 233
+traverseHsStmtHsExp :: MonadSetSrcLoc m => (HsExp -> m HsExp) -> HsStmt -> m HsStmt
+traverseHsStmtHsExp fn d = f d where
+    f (HsGenerator sl p e) = withSrcLoc sl $ HsGenerator sl p `liftM` fn e
+    f (HsQualifier e) = HsQualifier `liftM` fn e
+    f (HsLetStmt ds) = HsLetStmt `liftM` mapM (traverseHsDeclHsExp fn) ds
+
hunk ./FrontEnd/Tc/Main.hs 325
-tiExpr (HsDo stmts) typ = withContext (simpleMsg "in a do expression") $ do
-        newExp <- doToExp stmts
-        tcExpr newExp typ
+--tiExpr (HsDo stmts) typ = withContext (simpleMsg "in a do expression") $ do
+--        newExp <- doToExp stmts
+--        tcExpr newExp typ
hunk ./FrontEnd/TypeSyns.hs 8
-import FrontEnd.Desugar (doToExp)
hunk ./FrontEnd/TypeSyns.hs 301
-renameHsExp (HsDo hsStmts) subTable = do
-    e <- doToExp hsStmts
-    renameHsExp e subTable