import IdInfo
import qualified Demand ( Demand )
+import DataCon ( isUnboxedTupleCon )
import NewDemand ( Demand, StrictSig, topDmd, topSig, isBottomingSig )
import Name ( Name, OccName,
mkSystemName, mkSystemNameEncoded, mkInternalName,
-- binding, even though it is defined in this module.
-- Data constructor workers used to be things of this kind, but
-- they aren't any more. Instead, we inject a binding for
--- them at the CorePrep stage.
+-- them at the CorePrep stage.
+-- EXCEPT: unboxed tuples, which definitely have no binding
hasNoBinding id = case globalIdDetails id of
- PrimOpId _ -> True
- FCallId _ -> True
- other -> False
+ PrimOpId _ -> True
+ FCallId _ -> True
+ DataConWorkId dc -> isUnboxedTupleCon dc
+ other -> False
isImplicitId :: Id -> Bool
-- isImplicitId tells whether an Id's info is implied by other