For things which don't require (>>=), HasIO is fine, otherwise MonadIO gives access to the monad interface.