558 karma · joined June 9, 2015
On the flip side, OCaml has a GC and Rust does not. For any other language and most usecases, that would be a dealbreaker. It's very cool how Rust has made it less so, but I'm not convinced it is magic enough to make it insignificant.
Suppose you have a type `colour` defined as `RGB(int, int, int) | HSL(int, int, int)` and then you add representation as CIE. Then having to update each match on a colour is absolutely a feature not a bug. If you miss some out then your code will be wrong.
On the other hand, suppose you have various ways of serialization (JSON/XML/s-expressions). In this case, it would probably be nice if you could add a way to serialize to e.g. protobufs without having to jump around your codebase and all its clients fixing type errors. But in most languages of the kind we're discussing, you can do! You just have to represent the different serialization methods in some way other than a variant type. For instance, in OCaml you could just use classes and inheritance (although in practice you probably wouldn't because the language provides nicer tools).
It depends what you mean by "optimizing their engineering stack". They certainly do put a lot of effort into tooling, by necessity since historically there hasn't been much available for OCaml. For an example of stuff going beyond the open source work to make OCaml usable for large projects, see https://blog.janestreet.com/putting-the-i-back-in-ide-toward...
Obviously there is a lot of infrastructure that you need at a FAANG and not at a company with a few hundred devs. But any trading company that doesn't want to pull a Knight Capital needs to make sure their software is correct and reliable (probably to a greater extent than most of a FAANG).
I think in OCaml, "functor" basically just means "like a function but for modules". They might technically be categorical functors, but it seems quite different to the meaning in Haskell where they are plainly categorical functors (modulo Hask technically not being a category).
Outside the US, Oxbridge, ETHZ and NUS would be some examples, where globally prestigious means ~top 20. If you broaden to top 100 there are quite a lot of European/Australian/Canadian/Chinese ones.