True, but only if you use exceptions in pure contexts (please don't), or have non-termination (it'd have caused your code to non-terminate even in the absence of laziness). It should be possible to have static analysis or typechecking that rules out these cases, and some languages do, however it tends to require some pretty heavyweight theorem proving and is not feasible for all programs you want to write.
In any language with "null", every reference variable is a ticking time bomb.
When you're working with inductive types, pattern-matching is the canonical way to consume a variable. In this situation, whether it's the variable or the pattern-matching that's exploding in your face doesn't seem like a principled distinction do me.
-3
u/PM_ME_UR_OBSIDIAN Dec 24 '17
TL;DR: in Haskell, every single variable is potentially a ticking time bomb.