Hacker News new | past | comments | ask | show | jobs | submit login

I take issue with your claim that OCaml is more complicated than Haskell. It has a much simpler core language (roughly Hindley-Milner + ADTs + GADTs + modules) whereas Haskell has Hindley-Milner, ADTs, GADTs, backpack, type families, type classes (plus several mutually inconsistent extensions related to them), new types, "roles", and more.

This is a weird comment since you've purposefully included many Haskell extensions that are in no way part of the "core" language.

Hindley-milner, ADTs, type classes, and laziness are core i.e. part of Haskell 2010. GADTs aren't even part of core Haskell. So I guess it is simpler than Ocaml after all!

I intended the phrase "core" to refer to aspects of the language which are commonly used, leaving aside less frequently used or more obscure GHC extensions like existential quantification, functional dependencies, implicit params, etc, etc.

Which language features that I mentioned do you not think are commonly used in Haskell?

Backpack, for example, was _literally_ only released in the latest version of GHC. Do you just glance over the subreddit occasionally or something? That would explain your list.

You list things that aren't part of the Haskell standard and just claim that they are "core" while not even listing all of the _actually core_ features of OCaml -- all of its OO parts.

You're leaving out a ton of complexity present in ocaml, including first-class mutable references and all their consequences (including broken polymorphism under eta-reduction), order-dependent evaluation, side effectful imports, etc.. Extensions are also common in production ocaml code.

I agree the typeclass stuff in Haskell can get complicated, but the more abstruse typeclass features are used about as much as the similarly abstruse ocaml object system. It's usually quite straightforward, just like ocaml modules are usually (but not always) quite straightforward.

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