Add HsCoreTy to HsType
[ghc-hetmet.git] / compiler / typecheck / TcRnMonad.lhs
index 90028bd..6d5d6d1 100644 (file)
@@ -35,7 +35,7 @@ import Bag
 import Outputable
 import UniqSupply
 import Unique
-import LazyUniqFM
+import UniqFM
 import DynFlags
 import StaticFlags
 import FastString
@@ -115,7 +115,8 @@ initTc hsc_env hsc_src keep_rn_syntax mod do_this
                tcg_dfun_n   = dfun_n_var,
                tcg_keep     = keep_var,
                tcg_doc_hdr  = Nothing,
-                tcg_hpc      = False
+                tcg_hpc      = False,
+                tcg_main     = Nothing
             } ;
             lcl_env = TcLclEnv {
                tcl_errs       = errs_var,
@@ -229,19 +230,21 @@ Command-line flags
 getDOpts :: TcRnIf gbl lcl DynFlags
 getDOpts = do { env <- getTopEnv; return (hsc_dflags env) }
 
-doptM :: DynFlag -> TcRnIf gbl lcl Bool
+doptM :: DOpt d => d -> TcRnIf gbl lcl Bool
 doptM flag = do { dflags <- getDOpts; return (dopt flag dflags) }
 
-setOptM :: DynFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
+-- XXX setOptM and unsetOptM operate on different types. One should be renamed.
+
+setOptM :: ExtensionFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
 setOptM flag = updEnv (\ env@(Env { env_top = top }) ->
-                        env { env_top = top { hsc_dflags = dopt_set (hsc_dflags top) flag}} )
+                        env { env_top = top { hsc_dflags = lopt_set_flattened (hsc_dflags top) flag}} )
 
 unsetOptM :: DynFlag -> TcRnIf gbl lcl a -> TcRnIf gbl lcl a
 unsetOptM flag = updEnv (\ env@(Env { env_top = top }) ->
                         env { env_top = top { hsc_dflags = dopt_unset (hsc_dflags top) flag}} )
 
 -- | Do it flag is true
-ifOptM :: DynFlag -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
+ifOptM :: DOpt d => d -> TcRnIf gbl lcl () -> TcRnIf gbl lcl ()
 ifOptM flag thing_inside = do { b <- doptM flag; 
                                if b then thing_inside else return () }