Evaluation in Haskell

In this section we'll take a look at Haskell's evaluation semantics, laziness, strictness and how they affect performance, and what to avoid.