they’re so orthogonal that you can use coroutines that suspend/resume using Observable’s flatMap, effectively re-using their cancellation mechanism for the current block. We’re still exploring whether it can also cancel and cleanup the coroutine’s captures etc