Stack management utilities.
Tracks recursion depth.
The red zone is the amount of stack space that must be available on the
current stack in order for
maybe_grow to call the supplied closure
without allocating a new stack.
The size of any freshly allocated stacks. It was chosen to match the default stack size for threads in Rust.
A trait for types which support bounded recursion to prevent stack overflow.
Grows the stack if necessary before invoking