Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.




It does have a lively ecosystem in some niches. Formal verification is one of them.

For example, https://opam.ocaml.org/packages/why3 is a little marvel of engineering.


Does Haskell have or-patterns yet? Last I checked OCaml still has the lead in pattern matching power :-)


I'm confused about something. According to https://www.haskell.org/ghc/ version 9.10.3 was released on 2025-09-10. How is there a version 9.12.1 listed for the or-patterns feature? Are these versions for different things?

They're versions of the same thing, and 9.12.1 was chronologically before 9.10.3. It looks like you can find the entire chronology at https://www.haskell.org/ghc/blog.html

OK, side note, whoever decides the GHC release numbers should be pulled aside and given a quick talk about how version numbers are supposed to work.

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 -> 0

> whoever decides the GHC release numbers should be pulled aside and given a quick talk about how version numbers are supposed to work

How is that?


> whoever decides the GHC release numbers should be pulled aside and given a quick talk about how version numbers are supposed to work.

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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: