add -fsimpleopt-before-flatten
[ghc-hetmet.git] / compiler / prelude / TysPrim.lhs
index efeced2..a5d9335 100644 (file)
@@ -10,9 +10,9 @@
 --   They are all, therefore, wired-in TyCons.  C.f module TysWiredIn
 module TysPrim(
        alphaTyVars, betaTyVars, alphaTyVar, betaTyVar, gammaTyVar, deltaTyVar,
-       alphaTy, betaTy, gammaTy, deltaTy,
+       alphaTy, betaTy, gammaTy, deltaTy, ecTyVars,
        openAlphaTy, openBetaTy, openAlphaTyVar, openBetaTyVar, openAlphaTyVars,
-        argAlphaTy, argAlphaTyVar,
+        argAlphaTy, argAlphaTyVar, argBetaTy, argBetaTyVar,
 
        primTyCons,
 
@@ -58,6 +58,7 @@ import OccName                ( mkTcOcc )
 import OccName         ( mkTyVarOccFS, mkTcOccFS )
 import TyCon           ( TyCon, mkPrimTyCon, mkLiftedPrimTyCon, mkAnyTyCon )
 import Type
+import TypeRep          ( ecKind )
 import Coercion
 import SrcLoc
 import Unique          ( mkAlphaTyVarUnique )
@@ -158,6 +159,9 @@ tyVarList kind = [ mkTyVar (mkInternalName (mkAlphaTyVarUnique u)
                            where c = chr (u-2 + ord 'a')
                 ]
 
+ecTyVars :: [TyVar]
+ecTyVars = tyVarList ecKind
+
 alphaTyVars :: [TyVar]
 alphaTyVars = tyVarList liftedTypeKind
 
@@ -183,10 +187,11 @@ openAlphaTy, openBetaTy :: Type
 openAlphaTy = mkTyVarTy openAlphaTyVar
 openBetaTy  = mkTyVarTy openBetaTyVar
 
-argAlphaTyVar :: TyVar
-(argAlphaTyVar : _) = tyVarList argTypeKind
-argAlphaTy :: Type
+argAlphaTyVar, argBetaTyVar :: TyVar
+(argAlphaTyVar : argBetaTyVar : _) = tyVarList argTypeKind
+argAlphaTy, argBetaTy :: Type
 argAlphaTy = mkTyVarTy argAlphaTyVar
+argBetaTy  = mkTyVarTy argBetaTyVar
 \end{code}