@abcdw yeah it would be nice to have explicit control over which thread is performing the evaluation like guile's cooperative repl. that repl was designed to integrate into async event loops (though it uses polling whereas a more modern design would use async i/o) where the evaluation often needs to happen in a "main" thread, not the thread of the repl client.
@dthompson Maybe it would be also cool to start evaluation in fiber, but I'm not yet fluent with its internals and at the moment don't know how to suspend/interrupt evaluation.
Also, I thought about reconstructing stack inside newly created thread, so the continuation can be performed without crossing continuation barrier. IDK yet how good this idea is :)