Suppose you have a coroutine which is suspended at some point in its execution. Would it be possible via a C API trick or extension of the c API to duplicate it so that I have two independently runnable coroutines in the same state? Said coroutines are always pure.