module VectUtils (
collectAnnTypeBinders, collectAnnTypeArgs, isAnnTypeArg,
collectAnnValBinders,
- mkDataConTag,
+ mkDataConTag, mkDataConTagLit,
splitClosureTy,
mkBuiltinCo,
import TysWiredIn
import TysPrim ( intPrimTy )
import BasicTypes ( Boxity(..) )
+import Literal ( Literal, mkMachInt )
import Outputable
import FastString
isAnnTypeArg (_, AnnType t) = True
isAnnTypeArg _ = False
+mkDataConTagLit :: DataCon -> Literal
+mkDataConTagLit con
+ = mkMachInt . toInteger $ dataConTag con - fIRST_TAG
+
mkDataConTag :: DataCon -> CoreExpr
-mkDataConTag = mkIntLitInt . dataConTag
+mkDataConTag con = mkIntLitInt (dataConTag con - fIRST_TAG)
splitUnTy :: String -> Name -> Type -> Type
splitUnTy s name ty