[Haskell-beginners] laziness and optimization