I like this explanation, thanks Dave! For me it renewed an interesting question: what do Kotlin programmers really mean when we say "coroutine"? Your video is a great explanation of what I understand the word "coroutine" to refer to in general terms—that is, a function that can yield control temporarily. But as far as I can tell, in all the docs, Kotlin itself uses the terminology differently. There, a "coroutine" is the thing you get when you call `launch`—that is, a virtual thread comprising suspending operations. I think this use of the term is heavily influenced by goroutines, and is actually somewhat at odds with the definition that's used both in your video and outside of the Kotlin ecosystem. Do you also see a disconnect there, or am I looking at it in the wrong way? Do you think there's a way to reconcile the two uses of the word, or are they two different (but related) concepts? This is a question that's plagued me for ages, and I'd love to know what you think.