handle-likeパッケージのIOをMonad全般に一般化した