[project @ 2000-10-31 17:30:16 by simonpj]
[ghc-hetmet.git] / ghc / compiler / types / Generics.lhs
index 0a0ec46..6c48a1f 100644 (file)
@@ -4,13 +4,13 @@ module Generics ( mkTyConGenInfo, mkGenericRhs,
     ) where
 
 
-import CmdLineOpts     ( opt_Generics )
+import CmdLineOpts     ( DynFlags, DynFlag(..), dopt )
 import RnHsSyn         ( RenamedHsExpr )
 import HsSyn           ( HsExpr(..), InPat(..), mkSimpleMatch )
 
 import Type             ( Type, isUnLiftedType, applyTys, tyVarsOfType, tyVarsOfTypes,
                          mkTyVarTys, mkForAllTys, mkTyConApp, splitFunTys,
-                         mkFunTy, funResultTy, isTyVarTy, splitForAllTys,
+                         mkFunTy, isTyVarTy,
                          splitSigmaTy, getTyVar, splitTyConApp_maybe, funTyCon
                        )
 
@@ -21,12 +21,12 @@ import TyCon            ( TyCon, tyConTyVars, tyConDataConsIfAvailable,
                        )
 import Name            ( Name, mkSysLocalName )
 import CoreSyn          ( mkLams, Expr(..), CoreExpr, AltCon(..), Note(..),
-                         mkConApp, Alt, Bind (..), mkTyApps, mkVarApps )
-import BasicTypes       ( RecFlag(..), EP(..), Boxity(..) )
+                         mkConApp, Alt, mkTyApps, mkVarApps )
+import BasicTypes       ( EP(..), Boxity(..) )
 import Var              ( TyVar )
 import VarSet          ( isEmptyVarSet )
-import Id               ( Id, mkTemplateLocal, mkTemplateLocals, idType, idName, 
-                         mkTemplateLocalsNum, mkVanillaId, mkId
+import Id               ( Id, mkTemplateLocal, idType, idName, 
+                         mkTemplateLocalsNum, mkId
                        ) 
 import TysWiredIn       ( genericTyCons,
                          genUnitTyCon, genUnitDataCon, plusTyCon, inrDataCon,
@@ -35,9 +35,9 @@ import TysWiredIn       ( genericTyCons,
 import IdInfo           ( vanillaIdInfo, setUnfoldingInfo )
 import CoreUnfold       ( mkTopUnfolding ) 
 
-import Unique          ( Uniquable(..), mkBuiltinUnique )
-import SrcLoc          ( mkBuiltinSrcLoc )
-import Maybes          ( maybeToBool, expectJust )
+import Unique          ( mkBuiltinUnique )
+import SrcLoc          ( builtinSrcLoc )
+import Maybes          ( expectJust )
 import Outputable 
 
 #include "HsVersions.h"
@@ -219,7 +219,7 @@ valid ty
 %************************************************************************
 
 \begin{code}
-mkTyConGenInfo :: TyCon -> Name -> Name -> Maybe (EP Id)
+mkTyConGenInfo :: DynFlags -> TyCon -> Name -> Name -> Maybe (EP Id)
 -- mkTyConGenInfo is called twice
 --     once from TysWiredIn for Tuples
 --     once the typechecker TcTyDecls 
@@ -230,8 +230,8 @@ mkTyConGenInfo :: TyCon -> Name -> Name -> Maybe (EP Id)
 -- The two names are the names constructed by the renamer
 -- for the fromT and toT conversion functions.
 
-mkTyConGenInfo tycon from_name to_name
-  | not opt_Generics
+mkTyConGenInfo dflags tycon from_name to_name
+  | not (dopt Opt_Generics dflags)
   = Nothing
 
   | null datacons      -- Abstractly imported types don't have
@@ -473,6 +473,6 @@ genericNames :: [Name]
 genericNames = [mkSysLocalName (mkBuiltinUnique i) (_PK_ ('g' : show i)) | i <- [1..]]
 (g1:g2:g3:_) = genericNames
 
-mk_hs_lam pats body = HsPar (HsLam (mkSimpleMatch pats body Nothing mkBuiltinSrcLoc))
+mk_hs_lam pats body = HsPar (HsLam (mkSimpleMatch pats body Nothing builtinSrcLoc))
 idexpr             = mk_hs_lam [VarPatIn g3] (HsVar g3)
 \end{code}