Interesting, thanks for posting.<p>I share the author's frustration with the lack of non-compiler-related examples of GADT uses. It seems like such a powerful idea, but I haven't been able to get a feel for when to reach for GADTs in Haskell
What's not clear from reading TFA is whether the compiler monomorphizes TFA's `Compact_array` for the two special cases of it (array of bytes vs. array of anything else), but I'm assuming so. Perhaps if I was familiar with OCaml the answer would be blindingly obvious. What's happening here is that w/ GADTs you can have a _singular_ abstraction with multiple distinct implementations for specific types and others for generic types, and you don't have to think about it too much, except you have to remember to use these type hints in the interface definitions to get the compiler to do what you want.<p>> Yaron Minsky joined Jane Street back in 2002, and claims the dubious honor of having convinced the firm to start using OCaml.<p>That's pretty cool. And I guess Stephen Dolan ended up there due to his work on OCaml, which is pretty cool too. (I'd like to meet Stephen some day.)
I know Jane Street love OCaml, but you have to wonder how much it's cost them in velocity and maintenance. This is a quant firm blogging about a programming language they're the most famous user of.