pub async fn run_io<'vm, T, E>(
    vm: T,
    v: ExecuteValue<RootedThread, E>
) -> Result<ExecuteValue<RootedThread, E>>
where E: Send + 'vm, T: Send + VmRoot<'vm>,