-- Modifying an Id
setIdName, setIdUnique, Id.setIdType, setIdExported, setIdNotExported,
setIdInfo, lazySetIdInfo, modifyIdInfo, maybeModifyIdInfo,
- zapLamIdInfo, zapDemandIdInfo,
+ zapLamIdInfo, zapDemandIdInfo, zapFragileIdInfo,
-- Predicates
isImplicitId, isDeadBinder, isDictId,
isFCallId, isFCallId_maybe,
isDataConWorkId, isDataConWorkId_maybe, isDataConId_maybe, idDataCon,
isBottomingId, idIsFrom,
+ isTickBoxOp, isTickBoxOp_maybe,
hasNoBinding,
-- Inline pragma stuff
| otherwise = False -- TyVars count as not dead
\end{code}
+\begin{code}
+isTickBoxOp :: Id -> Bool
+isTickBoxOp id =
+ case globalIdDetails id of
+ TickBoxOpId tick -> True
+ _ -> False
+
+isTickBoxOp_maybe :: Id -> Maybe TickBoxOp
+isTickBoxOp_maybe id =
+ case globalIdDetails id of
+ TickBoxOpId tick -> Just tick
+ _ -> Nothing
+\end{code}
%************************************************************************
%* *
\end{code}
\begin{code}
+zapInfo :: (IdInfo -> Maybe IdInfo) -> Id -> Id
+zapInfo zapper id = maybeModifyIdInfo (zapper (idInfo id)) id
+
zapLamIdInfo :: Id -> Id
-zapLamIdInfo id = maybeModifyIdInfo (zapLamInfo (idInfo id)) id
+zapLamIdInfo = zapInfo zapLamInfo
+
+zapDemandIdInfo = zapInfo zapDemandInfo
-zapDemandIdInfo id = maybeModifyIdInfo (zapDemandInfo (idInfo id)) id
+zapFragileIdInfo :: Id -> Id
+zapFragileIdInfo = zapInfo zapFragileInfo
\end{code}