As a Scala user: the further I've got into a functional/MLey style the more linear my code has become. Options or collections are very naturally handled with "fold" (cata). Loops probably shouldn't be infinite - if you're looping it's usually because you're folding along a data structure, and those ought to be finite (one of the ideas I'm toying with is a type-level natural indexed recursion-schemes like library, to make it easy to construct recursive structures that are known-finite).
I don't know if it's where Rust wants to be, but I want a practical-oriented ML-family language that does this.
I don't know if it's where Rust wants to be, but I want a practical-oriented ML-family language that does this.