Continuation Passing Style
How does Kotlin rewrite /direct/ style to CPS
https://www.youtube.com/watch?v=YrrUCSi72E8 Roman Elizarov describes how they do implement the rewrite in the 1daf3860?cf compiler. Something unexpected for me is that they do it using a State Machine instead of doing it using callbacks, the reason being that with State Machines they do fewer allocations, since the same state machine is threaded through all the suspended functions.
How does C# rewrite Async functions
They follow a similar technique to Kotlin (or the other way around… IDK who was inspired by who)