Lightweight versioning for lightweight protocols
At Jane Street, we often write OCaml programs that communicate over the network with each other, and as such, we need to build lots of...
At Jane Street, we often write OCaml programs that communicate over the network with each other, and as such, we need to build lots of...
I’ve been meaning to write about the OCaml Summer Project end-of-summer meeting that occurred on September 12th, but as those of you who read the...
Parametric polymorphism is a basic mechanism in ML for writing code that is generic, i.e., that can be used on multiple different types. To get...
We switched over to using Mercurial about a year and a half ago (from tla/baz–don’t ask), and it’s worked out quite well for us. One...
In a recent post, I described some of the problems associated with OCaml’s built in polymorphic comparison functions. So, if you want to avoid OCaml’s...
At least, if you ask with a nicely detailed bug report. Looks like the missed optimization for equality on polymorphic variants I mentioned in a...
I have a love-hate relationship with OCaml’s polymorphic comparison functions, which I think I share with a lot of people who use the language. For...
A couple of months ago, Pascal noticed some missed optimizations in OCaml’s float unboxing optimizations. In some cases, code that looked like it should be...
One of the best features of ML is pattern matching. Pattern matching is essentially a way of writing a case analysis driven by the structure...
This article deals with some not well-known dark corners of the OCaml compiler and how to get around them to produce more efficient code. The...
Here’s a little trick that I find useful when I get a type error due to a function that I believe is polymorphic, but isn’t...
This is intended to be the first in a series of posts talking about the design principles behind core, Jane Street’s alternative to OCaml’s standard...
We are proud to announce the first public release of `core`, Jane Street's own alternative to OCaml's standard library. We use this library as the...
Here’s a type-checking problem I ran into today. I had a module with a variant type matching a signature that exposed the variant type.
Unlike let declarations, type declarations in OCaml are automatically recursive. This seems harmless at first, but it actually causes more trouble than it’s worth. To...
I just got back from visiting Northeastern and Harvard where I yet again flogged a version of my POPL talk. Olin Shivers was my host...
One of the annoyances of using monads in OCaml is that the syntax is awkward. You can see why if you look at a simple...
Here’s another puzzle: