Haskell is a product of the UK academic circles [..]
For a long time, OCaml was a product of the French academic circles. There was a hole of about 10 years when it saw almost no development, except for what the Coq project needed. Disinterested academics are the reason its libraries are all over the place, and it started picking up steam only a few years back.
For example, you would expect a standardized string type in your language of choice.
Speaking of text, OCaml’s string is a byte array and most closely matches strict ByteString. Oh, you want Unicode with that? Excellent – there are three small ecosystems of unicode processing libraries for that!
Some Haskell libraries/concepts just can’t be easily expressed with the same level of generality in OCaml. For example the absence of typeclasses and HKT means that you can’t as easily reason on “an arbitrary functor”.
While the first part is true, especially with value promotion, both languages contain Fω. It happens on the module level in OCaml. You can parameterize functors with functors [in OCaml] just like you can parameterize types and values with type constructors [in Haskell].
While searching for the truth is such a big thing in Haskell where every self-respecting programmer will write his/her own effect system based on the latest and coolest papers.
In an interesting twist, in my experience, there is a higher proportion of PL PhDs in the OCaml crowd – although absolute number might be comparable. Haskell has somehow escaped the lab and crazed the internets. OCaml is often used by people who play with type theory in Coq instead.
This eagerness to play with the machinery is probably the reason that Haskell stuff is often massively over-engineered.
For a long time, OCaml was a product of the French academic circles. There was a hole of about 10 years when it saw almost no development, except for what the Coq project needed. Disinterested academics are the reason its libraries are all over the place, and it started picking up steam only a few years back.
Speaking of text, OCaml’s
string
is a byte array and most closely matches strictByteString
. Oh, you want Unicode with that? Excellent – there are three small ecosystems of unicode processing libraries for that!While the first part is true, especially with value promotion, both languages contain Fω. It happens on the module level in OCaml. You can parameterize functors with functors [in OCaml] just like you can parameterize types and values with type constructors [in Haskell].
In an interesting twist, in my experience, there is a higher proportion of PL PhDs in the OCaml crowd – although absolute number might be comparable. Haskell has somehow escaped the lab and crazed the internets. OCaml is often used by people who play with type theory in Coq instead.
This eagerness to play with the machinery is probably the reason that Haskell stuff is often massively over-engineered.