When allocating into a region, we cannot know the answer type of that region. This makes it impossible to push a regular return address.
As a workaround, variables are allocated with a special return function, that removes the region from the stack. When underflowing a region, we first call this special function, and then return regularly.
Also, this breaks globals, as the first stack has no previous stack.
@phischu I hate how this turned out.
When allocating into a region, we cannot know the answer type of that region. This makes it impossible to push a regular return address.
As a workaround, variables are allocated with a special return function, that removes the region from the stack. When underflowing a region, we first call this special function, and then return regularly.
Also, this breaks globals, as the first stack has no previous stack.