isRecordSelector,
isPrimOpId, isPrimOpId_maybe,
isFCallId, isFCallId_maybe,
- isDataConId, isDataConId_maybe,
+ isDataConWorkId, isDataConWorkId_maybe,
isDataConWrapId, isDataConWrapId_maybe,
isBottomingId,
hasNoBinding,
setIdNewStrictness, zapIdNewStrictness,
setIdWorkerInfo,
setIdSpecialisation,
- setIdCgInfo,
+ setIdCafInfo,
setIdOccInfo,
#ifdef OLD_STRICTNESS
idWorkerInfo,
idUnfolding,
idSpecialisation, idCoreRules,
- idCgInfo,
idCafInfo,
idLBVarInfo,
idOccInfo,
FCallId call -> Just call
other -> Nothing
-isDataConId id = case globalIdDetails id of
- DataConId _ -> True
- other -> False
+isDataConWorkId id = case globalIdDetails id of
+ DataConWorkId _ -> True
+ other -> False
-isDataConId_maybe id = case globalIdDetails id of
- DataConId con -> Just con
- other -> Nothing
+isDataConWorkId_maybe id = case globalIdDetails id of
+ DataConWorkId con -> Just con
+ other -> Nothing
isDataConWrapId_maybe id = case globalIdDetails id of
DataConWrapId con -> Just con
-- file, even if it's mentioned in some other interface unfolding.
isImplicitId id
= case globalIdDetails id of
- RecordSelId _ -> True -- Includes dictionary selectors
+ RecordSelId _ -> True
FCallId _ -> True
PrimOpId _ -> True
- DataConId _ -> True
+ ClassOpId _ -> True
+ GenericOpId _ -> True
+ DataConWorkId _ -> True
DataConWrapId _ -> True
-- These are are implied by their type or class decl;
-- remember that all type and class decls appear in the interface file.
- -- The dfun id must *not* be omitted, because it carries version info for
- -- the instance decl
+ -- The dfun id is not an implicit Id; it must *not* be omitted, because
+ -- it carries version info for the instance decl
other -> False
\end{code}
setIdSpecialisation id spec_info = modifyIdInfo (`setSpecInfo` spec_info) id
---------------------------------
- -- CG INFO
-idCgInfo :: Id -> CgInfo
-#ifdef OLD_STRICTNESS
-idCgInfo id = case cgInfo (idInfo id) of
- NoCgInfo -> pprPanic "idCgInfo" (ppr id)
- info -> info
-#else
-idCgInfo id = cgInfo (idInfo id)
-#endif
-
-setIdCgInfo :: Id -> CgInfo -> Id
-setIdCgInfo id cg_info = modifyIdInfo (`setCgInfo` cg_info) id
-
- ---------------------------------
-- CAF INFO
idCafInfo :: Id -> CafInfo
#ifdef OLD_STRICTNESS
NoCgInfo -> pprPanic "idCafInfo" (ppr id)
info -> cgCafInfo info
#else
-idCafInfo id = cgCafInfo (idCgInfo id)
+idCafInfo id = cafInfo (idInfo id)
#endif
+
+setIdCafInfo :: Id -> CafInfo -> Id
+setIdCafInfo id caf_info = modifyIdInfo (`setCafInfo` caf_info) id
+
---------------------------------
-- CPR INFO
#ifdef OLD_STRICTNESS