``` val io: IO<MonoK<ResultSet>> = ......
# arrow
p
Copy code
val io: IO<MonoK<ResultSet>> = ...

io.flatMap { monoK ->
  IO.async { conn, cb ->
    val cancelMono = monoK.subscribe { 
       conn.pop()
       it.fold({ cb(it.left()) }, { cb(it.right()) })
    }
    conn.push(IO { cancelMono.dispose() })
  }
}