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]
            
 
-    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"
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,
-        argAlphaTy, argAlphaTyVar,
+        argAlphaTy, argAlphaTyVar, argBetaTy, argBetaTyVar,
 
        primTyCons,
 
@@ -183,10 +183,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}