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: ...
}
}
