Before Rust had a strong concurrency model, Eiffel created SCOOP, where the compiler chooses how to thread: https://en.wikipedia.org/wiki/SCOOP_(software)