[thread options into the renamer and simplify renamer some by leaving wrapping of constructors to the type checker
John Meacham <john@repetae.net>**20090228021401
 Ignore-this: 734a765b3cd3f829b2ace35d10da8aa7
] hunk ./FrontEnd/Desugar.hs 37
-module FrontEnd.Desugar (doToExp, desugarHsModule, desugarHsStmt) where
+module FrontEnd.Desugar (doToExp, listCompToExp, desugarHsModule, desugarHsStmt) where
hunk ./FrontEnd/Desugar.hs 329
-        return (listCompToExp newE newStmts)
+        return (HsListComp e stmts)
hunk ./FrontEnd/Desugar.hs 393
-
+{-
hunk ./FrontEnd/Desugar.hs 403
+-}
+
+f_bind = nameName $ toUnqualified (func_bind sFuncNames)
+f_bind_ = nameName $ toUnqualified (func_bind_ sFuncNames)
+f_fail = nameName $ toUnqualified v_fail
hunk ./FrontEnd/Desugar.hs 461
+    f_concatMap = nameName $ toUnqualified v_concatMap
+    f_map = nameName $ toUnqualified v_map
+    f_foldr = nameName $ toUnqualified v_foldr
+    f_and = nameName $ toUnqualified v_and
+    con_cons = nameName $ toUnqualified dc_Cons
hunk ./FrontEnd/HsSyn.hs 384
+        | HsLocatedExp LHsExp
hunk ./FrontEnd/Rename.hs 18
-import FrontEnd.Desugar (doToExp)
+import FrontEnd.Desugar (doToExp,listCompToExp)
hunk ./FrontEnd/Rename.hs 29
+import qualified FlagOpts as FO
hunk ./FrontEnd/Rename.hs 32
+import Options
hunk ./FrontEnd/Rename.hs 63
+    envOptions :: Opt,
hunk ./FrontEnd/Rename.hs 119
-runRename :: MonadWarn m => (a -> RM a) -> Module -> FieldMap -> [(Name,[Name])] -> a -> m a
-runRename doit mod fls ns m = mapM_ addWarning errors >> return renamedMod where
+runRename :: MonadWarn m => (a -> RM a) -> Opt -> Module -> FieldMap -> [(Name,[Name])] -> a -> m a
+runRename doit opt mod fls ns m = mapM_ addWarning errors >> return renamedMod where
hunk ./FrontEnd/Rename.hs 143
+        envOptions = opt,
hunk ./FrontEnd/Rename.hs 149
-renameModule :: MonadWarn m => FieldMap -> [(Name,[Name])] -> HsModule -> m HsModule
-renameModule fls ns m = runRename renameDecls (hsModuleName m) fls ns m
+renameModule :: MonadWarn m => Opt -> FieldMap -> [(Name,[Name])] -> HsModule -> m HsModule
+renameModule opt fls ns m = runRename renameDecls opt (hsModuleName m) fls ns m
hunk ./FrontEnd/Rename.hs 153
-renameStatement :: MonadWarn m => FieldMap -> [(Name,[Name])] -> Module -> HsStmt -> m HsStmt
-renameStatement fls ns modName stmt = runRename rename modName fls ns stmt
+renameStatement :: MonadWarn m => FieldMap -> [(Name,[Name])] ->  Module -> HsStmt -> m HsStmt
+renameStatement fls ns modName stmt = runRename rename options modName fls ns stmt
hunk ./FrontEnd/Rename.hs 506
-wrapInAsPat e = do
-    unique <- newUniq
-    mod <- getCurrentModule
-    let hsName'' = (Qual mod (HsIdent $ show unique {- ++ fromHsName hsName' -} ++ "_as@"))
-    return (HsAsPat hsName''  e )
hunk ./FrontEnd/Rename.hs 509
-    rename (HsCon hsName) = do
-        nn <- rename hsName
-        wrapInAsPat $ HsCon nn
+    rename (HsCon hsName) = return HsCon `ap` rename hsName
hunk ./FrontEnd/Rename.hs 551
-        updateWith hsStmts $ do
-            hsStmts' <- rename hsStmts
-            hsExp' <- rename hsExp
-            return (HsListComp hsExp' hsStmts')
+        rename (listCompToExp hsExp hsStmts)
+        --updateWith hsStmts $ do
+        --    hsStmts' <- rename hsStmts
+        --    hsExp' <- rename hsExp
+        --    return (HsListComp hsExp' hsStmts')
hunk ./FrontEnd/Rename.hs 570
-
hunk ./FrontEnd/Rename.hs 594
-            con <- wrapInAsPat (HsCon n)
-            return $ foldl HsApp con rs
+            return $ foldl HsApp (HsCon n) rs
hunk ./FrontEnd/Rename.hs 610
-                    con <- wrapInAsPat (HsCon c')
-                    let x = foldl HsApp con [ maybe v id (lookup i zs) | v <- vars' | i <- [ 0 .. t - 1] ]
+                    let x = foldl HsApp (HsCon c') [ maybe v id (lookup i zs) | v <- vars' | i <- [ 0 .. t - 1] ]
hunk ./FrontEnd/Rename.hs 812
-    f cad@(HsClassAliasDecl { hsDeclSrcLoc = sl, hsDeclName = n, hsDeclDecls = ds }) 
+    f cad@(HsClassAliasDecl { hsDeclSrcLoc = sl, hsDeclName = n, hsDeclDecls = ds })
hunk ./FrontEnd/Rename.hs 814
-        where 
+        where
hunk ./FrontEnd/Tc/Main.hs 74
-tcApps e@(HsAsPat n (HsCon v)) as typ = do
+tcApps e@(HsCon v) as typ = do
+    (e,nname) <- wrapInAsPat e
hunk ./FrontEnd/Tc/Main.hs 77
-    let nname = toName Val n
hunk ./FrontEnd/Tc/Main.hs 78
-    addToCollectedEnv (Map.singleton (toName Val n) typ)
+    addToCollectedEnv (Map.singleton nname typ)
hunk ./FrontEnd/Tc/Main.hs 161
-    return (HsCon conName)
+    (ne,ap) <- wrapInAsPat (HsCon conName)
+    addToCollectedEnv (Map.singleton ap typ)
+    return ne
hunk ./FrontEnd/Tc/Module.hs 88
-    let (mod',errs) = runWriter $ renameModule defs (modInfoImport m)  mod
+    let (mod',errs) = runWriter $ renameModule (modInfoOptions m) defs (modInfoImport m)  mod
hunk ./Name/Name.hs 35
-data NameType =
-    TypeConstructor
+data NameType
+    = TypeConstructor
hunk ./Name/Name.hs 44
+    | UnknownType