made a MonadIOPlus instance instead of 2 Monad instances