Well, many of the benefits of Rust, but in a simpler and garbage-collected language. Possibly the best language (alongside Haskell) if you need pattern-matching. Not quite as good if you need lots of libraries or interaction with other languages.
For example, https://opam.ocaml.org/packages/why3 is a little marvel of engineering.
Anyway, looks like or-patterns just landed as a GHC extension:
foo (Bar; Baz) = 0
I still like OCaml's (built-in) syntax better: let foo (Bar | Baz) = 0
Which I feel stems from its elegant decision to use the pipe character as the 'alternative pattern prefix': let foo = function
| Bar
| Baz -> 0How is that?
9.10.3 is a patch for the 9.10 version which was published after 9.12.1 but relates to an older version. Haskell keeps maintaining multiple versions of the toolchain.