[Haskell-beginners] Feedback on Maybe+State+IO code