On a related note: I don’t understand how to correctly drop a multishot continuation, if I never know if my own code is going to be resumed later. The only approach I know of would be for a resource-aware drop operation, that walks the stack and recursively drops the continuations that it itself binds. At this point one can ask for copy to work in a similar way. But this is not something that this library implements.
(Dreaming aloud: we could have a Custom-like class of dynamic values with explicit copy and drop operations, and explicit marks in our stacks for binding references to values, denoting that the stack captures the binder to this value. I wonder how that compares to @gadmm’s stuff.)