Give seqId the right type
authorsimonpj@microsoft.com <unknown>
Fri, 3 Sep 2010 09:35:56 +0000 (09:35 +0000)
committersimonpj@microsoft.com <unknown>
Fri, 3 Sep 2010 09:35:56 +0000 (09:35 +0000)
compiler/basicTypes/MkId.lhs
compiler/prelude/TysPrim.lhs

index b7c442b..6d6a835 100644 (file)
@@ -945,10 +945,10 @@ seqId = pcMiscPrelId seqName ty info
                        `setSpecInfo` mkSpecInfo [seq_cast_rule]
            
 
                        `setSpecInfo` mkSpecInfo [seq_cast_rule]
            
 
-    ty  = mkForAllTys [alphaTyVar,openBetaTyVar]
-                      (mkFunTy alphaTy (mkFunTy openBetaTy openBetaTy))
-    [x,y] = mkTemplateLocals [alphaTy, openBetaTy]
-    rhs = mkLams [alphaTyVar,openBetaTyVar,x,y] (Case (Var x) x openBetaTy [(DEFAULT, [], Var y)])
+    ty  = mkForAllTys [alphaTyVar,argBetaTyVar]
+                      (mkFunTy alphaTy (mkFunTy argBetaTy argBetaTy))
+    [x,y] = mkTemplateLocals [alphaTy, argBetaTy]
+    rhs = mkLams [alphaTyVar,argBetaTyVar,x,y] (Case (Var x) x argBetaTy [(DEFAULT, [], Var y)])
 
     -- See Note [Built-in RULES for seq]
     seq_cast_rule = BuiltinRule { ru_name  = fsLit "seq of cast"
 
     -- See Note [Built-in RULES for seq]
     seq_cast_rule = BuiltinRule { ru_name  = fsLit "seq of cast"
index efeced2..ac3a528 100644 (file)
@@ -12,7 +12,7 @@ module TysPrim(
        alphaTyVars, betaTyVars, alphaTyVar, betaTyVar, gammaTyVar, deltaTyVar,
        alphaTy, betaTy, gammaTy, deltaTy,
        openAlphaTy, openBetaTy, openAlphaTyVar, openBetaTyVar, openAlphaTyVars,
        alphaTyVars, betaTyVars, alphaTyVar, betaTyVar, gammaTyVar, deltaTyVar,
        alphaTy, betaTy, gammaTy, deltaTy,
        openAlphaTy, openBetaTy, openAlphaTyVar, openBetaTyVar, openAlphaTyVars,
-        argAlphaTy, argAlphaTyVar,
+        argAlphaTy, argAlphaTyVar, argBetaTy, argBetaTyVar,
 
        primTyCons,
 
 
        primTyCons,
 
@@ -183,10 +183,11 @@ openAlphaTy, openBetaTy :: Type
 openAlphaTy = mkTyVarTy openAlphaTyVar
 openBetaTy  = mkTyVarTy openBetaTyVar
 
 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
 argAlphaTy = mkTyVarTy argAlphaTyVar
+argBetaTy  = mkTyVarTy argBetaTyVar
 \end{code}
 
 
 \end{code}