IO and fold (was Re: fold on Monad? )