We don't need detailed call stacks to help with understanding recursion. Just the somewhat more abstract concept of a procedure/function activation. Calling a function suspends the caller and create a new activation for the callee. When the callee returns, it's activation is disposed and suspended color resumes in its original activation.