) where
-import CmdLineOpts ( opt_GlasgowExts )
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
)
)
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,
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"
-- for the fromT and toT conversion functions.
mkTyConGenInfo tycon from_name to_name
- | not opt_GlasgowExts
- = Nothing
-
| null datacons -- Abstractly imported types don't have
= Nothing -- to/from operations, (and should not need them)
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}