Fix scoped type variables for expression type signatures
[ghc-hetmet.git] / compiler / prelude / PrelRules.lhs
index ae26f84..f7a3198 100644 (file)
@@ -20,7 +20,7 @@ module PrelRules ( primOpRules, builtinRules ) where
 #include "HsVersions.h"
 
 import CoreSyn
-import Id              ( mkWildId, isPrimOpId_maybe, idUnfolding )
+import Id              ( mkWildId, idUnfolding )
 import Literal         ( Literal(..), mkMachInt, mkMachWord
                        , literalType
                        , word2IntLit, int2WordLit
@@ -30,7 +30,7 @@ import Literal                ( Literal(..), mkMachInt, mkMachWord
                        , float2IntLit, int2FloatLit, double2IntLit, int2DoubleLit
                        , float2DoubleLit, double2FloatLit
                        )
-import PrimOp          ( PrimOp(..), primOpOcc )
+import PrimOp          ( PrimOp(..), primOpOcc, tagToEnumKey )
 import TysWiredIn      ( boolTy, trueDataConId, falseDataConId )
 import TyCon           ( tyConDataCons_maybe, isEnumerationTyCon, isNewTyCon )
 import DataCon         ( dataConTag, dataConTyCon, dataConWorkId, fIRST_TAG )
@@ -386,7 +386,7 @@ For dataToTag#, we can reduce if either
 
 \begin{code}
 dataToTagRule [Type ty1, Var tag_to_enum `App` Type ty2 `App` tag]
-  | Just TagToEnumOp <- isPrimOpId_maybe tag_to_enum
+  | tag_to_enum `hasKey` tagToEnumKey
   , ty1 `coreEqType` ty2
   = Just tag   -- dataToTag (tagToEnum x)   ==>   x