Solution: What is stored by a continuation?

A continuation must store all the coroutine’s variables that are used after the suspension point. So, in this case it needs to store c and a (it does not need to store the value b because it is not used after the suspension). A continuation must also store the label that marks the point at which the coroutine should be resumed. In this case, this is the label 2 for function a, and 1 for main.

Here is a simplified continuation structure:

{
    I$0: 12345,
    label: 2,
    completion: {
        I$0: "ABC"
        label: 1,
        completion: ...
    }
}