I attribute this almost entirely to sum types (Rust enums), a better type system, an unforgiving compiler, async/await, a better module system, lifetime checking...
This seems like an example of a language effectively abstracting common complexities and pain points, which were probably discovered in earlier languages...
I think it's fair to say that rust is the first mainstream languages bringing these notions out of the woods. Who on earth knows about ML or cyclone ? 0.0001% of the programming crowd maybe.
World operates in spirals. We branch off trying things and then go back to old forgotten ideas, etc etc
Kotlin has sealed classes which are basically the same as Rust's enums. It also has async / await in the form of coroutines and a decent module system. It also doesn't need manual memory management, which while unsuitable for many applications does remove another potential class of bugs.
This seems like an example of a language effectively abstracting common complexities and pain points, which were probably discovered in earlier languages...