I wrote up a bunch of grievance examples for a blog post I never got around to publishing, but I'm traveling at the moment so can't pull up my laptop. I'll see if I can find them later.
> The syntax for annotation for polymorphic functions is isomorphic between OCaml and Haskell.
Sorry, but total bullshit. I had to use these pieces of shit all the time. https://v2.ocaml.org/manual/locallyabstract.html
> If I take a random module in the standard library, let's say Array
As I specifically called out, all the core data structures are polymorphic. (Let's not talk about the float array hack; is that still around?)
It's so annoying that pretty much every other library is monomorphic or functorized.
> I am thus genuinely puzzled by your statement that "OCaml programmers almost never write polymorphic functions".
Not sure what to tell you man. I spent 4 years reading & writing ocaml and 95% of the code that would have been polymorphic in haskell (because it would be easy/free) was either monomorphic or (multiple layers of) functors. Many/most of the devs I worked with (great devs with years of OCaml experience) didn't even know what LATs were, let alone used them, which means they were almost certainly not writing polymorphic code which "did anything" with the type. The only polymorphic code that you can write in ocaml without such things are functorial (in the categorical sense, not the ocaml sense). Arrays, map values, that's about it.