[Haskell-beginners] Lazy state + IO not lazy?