What's the difference between generators, coroutines, and continuations?