Abstract block-taking methods to MonadIO