I would say Rust solves almost all of the issues identified in this post. It obviously introduces the extra complexity of no GC & borrow checking, but if you're ok with that I don't see why you would pick OCaml over Rust.
But other than that, in no particular order:
- While it has its downsides, OCaml's module system (and functors especially) is extremely powerful and allows for all sorts of higher-kinded abstractions that are currently out of reach of Rust's type system, especially when combined with first-class modules
- No monorphisation means more reasonable compile times
- Some of the advanced type system features (GADTs, extensible types, polymorphic variants) are really quite nice
(but really, menhir is great, and I miss it whenever I need to parse things in another language)
Yes, they did. This is literally from the third paragraph of the article:
> It’s actually a weirdly optimistic thing: that a language with so many glaring deficiencies stands far above everything else.