This module defines nestable suspension functors for use with the Coroutine monad transformer, as well as
functions for running nested coroutines of this sort.

Coroutines can be run from within another coroutine. In this case, the nested coroutines always suspend to their
invoker. If a function from this module, such as pogoStickNested, is used to run a nested coroutine, the parent
coroutine can be automatically suspended as well. A single suspension can thus suspend an entire chain of nested
coroutines.

Like seesaw, but for nested coroutines that are allowed to suspend the current coroutine as well as themselves.
If both coroutines try to suspend the current coroutine in the same step, the left coroutine's suspension will have
precedence.

Like seesawSteps, but for nested coroutines that are allowed to suspend the current coroutine as well
as themselves. If both coroutines try to suspend the current coroutine in the same step, the left coroutine's
suspension will have precedence.