From: simonpj@microsoft.com Date: Fri, 3 Sep 2010 09:35:56 +0000 (+0000) Subject: Give seqId the right type X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=eb5ba64de7cbef6c541d87e3afb644c1115ce103;p=ghc-hetmet.git Give seqId the right type --- diff --git a/compiler/basicTypes/MkId.lhs b/compiler/basicTypes/MkId.lhs index b7c442b..6d6a835 100644 --- a/compiler/basicTypes/MkId.lhs +++ b/compiler/basicTypes/MkId.lhs @@ -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" diff --git a/compiler/prelude/TysPrim.lhs b/compiler/prelude/TysPrim.lhs index efeced2..ac3a528 100644 --- a/compiler/prelude/TysPrim.lhs +++ b/compiler/prelude/TysPrim.lhs @@ -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}