[Haskell-beginners] Understanding how laziness works