This is a literate Haskell page: you can load it directly into ghci by following these steps. Haskell uses an evaluation strategy known as lazy evaluation. The basic idea is that an expression is not ...