Exploring Kotlin's Contracts for Concurrency with Kotlinx Coroutines