+isStrict (WwUnpack other _ _) = True
+isStrict WwStrict = True
+isStrict WwEnum = True
+isStrict WwPrim = False -- NB: we treat only lifted types as strict.
+ -- Why is this important? Mostly it doesn't matter
+ -- but it saves a test for lifted-ness in SimplUtils.etaCoreExpr
+isStrict _ = False
+\end{code}
+
+\begin{code}
+isLazy :: Demand -> Bool
+isLazy (WwLazy False) = True -- NB "Absent" args do *not* count!
+isLazy _ = False -- (as they imply a worker)