So Thread.copyCurrent is the equivalent of fork (but in the thread world instead of the process world)? No, that can't be right. I'm confused about Thread.saved/Thread.clearSaved. This implementation still does, it looks like, a full copy of the stack at callcc time and also when you call the continuation, right?