[Haskell-beginners] Laziness problem, some code never being executed, when using Control.Monad.State.Strict