Dispatches from FUN Ocaml 2025

I have just got my sleep pattern restored after a superb two days at the FUN OCaml conference in Warsaw. OCaml is an unusual computer programming language reputed to be a bit of a productivity boost and agreeable to use to boot.

The conference comprised a series of fine talks and workshops, interspersed liberally with breaks for discussion.

The talks

My motivation for attending was to take the temperature of the OCaml ecosystem. I have worked for three companies where I used OCaml, but only one of them was a significant industrial user. And that was all some years in the past, before OCaml 5.0 and before the packaging and build system had settled down.

I am a bit of a broken record on the topic of "on ramps" to learning OCaml. In the long-term, new people need to be able to pick the language up, so beginner documentation matters just as much as "how to use the thing you already understand" manuals. The incentives are lacking for the business of keeping up to date the onboarding/beginner docs on critical things like the build process. I appreciate the onboarding documentation issue is generally not at the top of most people's minds.

Secondarily, I worry about churn, and that new features might not get widely used, or might impose transition costs. The talks and the Q&A afterwards reassured me this wasn't the problem in OCaml that it might be in other languages. There must be at least some unglamorous users for whom the razzle-dazzle of algebraic effects and modular implicits holds no great temptation.

The talks represented both industrial and non-commercial, ludic uses of OCaml. The latter is a good health signal: if people are going to the effort of using OCaml to further their hobbies, that's actually a very good sign, and the non-commercial talks were both from people evidencing serious technical chops.

The commercial talks covered domains like orchestration and formal language processing (e.g. managing IT infrastructure and looking for security bugs in other people's source code) and were exactly what I had been hoping for.

It was also nice to see people I'd met at the Marrakech retreats, and meet new folks, including those who maintain things I use, like the Emacs support.

Compiler hacking workshop

Due to being taken unwell, I was only able to attend one of the workshops on the second day. This was presented by Nicolás Ojeda Bär of LexiFi, and confronted a source of great fear even among battle-hardened programmers: editing the compiler. I well remember the weird sinking feeling many years ago when the very idea that there could exist bugs in a compiler occurred to me. And now here we were, potentially introducing new bugs.

I have limited familiarity with how compilers work internally; I am vaguely aware that a compiler frontend might have successive phases, turning concrete syntax into abstractions, annotating those with types, doing type checking, and, in the case of OCaml, famously compiling those down to lambda calculus. It follows that one part of the compiler can insert material at one phase for consumption in another, and this material need only be valid insofar as it will be subject to checking at subsequent phases. Thus one may develop and add a language feature by modifying the compiler to plumb new data through the phases.

The workshop took us through how LexiFi uses this to allow the slightly heretical affordance of pretty-printing values at runtime without knowing their types (which in standard OCaml have been erased at runtime). Material was added at an early phase of the compiler, and the speaker took us through adding plumbing at each phase to achieve the desired effect. I was very instructive to see the errors this kind of modification throws off when it's only half finished. In the end, we'd implemented a sort of type reflection that could be used in the REPL.

The Q&A after the workshop was particularly strong, but of course in such a situation people are also interrupting to ask questions as you go along. I suspect almost everyone was able to keep up. The whole thing was well pitched.

Conference logistics

The conference was too far from town for anyone to "know this great little place nearby" for dinner or drinks, so the attendees, rather than sundering into lots of little groups, remained perforce together once the day's formal proceedings had concluded. That's actually a very positive outcome, though it did lead to karaoke, and wistful singing of ballads about a simpler bygone age when the drugs were cheap, the rallies unstructured, and the types were all unsigned 32 bit integers.

I stand accused of organising more than my fair share of big face-to-face meetings, in divers pubs, hotels, colleges, stately homes, church halls and the like, so I take more than a passing interest in the logistics of such matters when done by others.

For FUN OCaml, the venue was (as noted) a few miles outside central Warsaw. The conference seemed to have the whole premises to itself, the WiFi and tables and electrity were very good, everything well set up for serendipitous encounters with folks one only knows from Twitter or Github or whom one is meeting for the first time. Food was generous and brawnily competitive with my hotel's buffet. Particularly appreciated was the amount of sliced lemon in the drinking water provided, bounteous enough to placate the severest urologist.

Getting good recordings of conference is something of an art; it's a courtesy to the speakers to get it right. The venue really shone through on this front, with a multi-camera setup, which meant that audience questions were well-covered too.

Then there's the practical matter of getting to and from the venue. If, like me, you cannot really use moble data, then unfamiliar public transport networks always impart a foreboding terror of missing the evening's last train and freezing to death under a motorway underpass like some benighted Pascal programmer. Fortunately, some local attendees apprised me of jakdojade.pl, purveyor of the most happening public transit routes, and I proceeded into the night, nonchalantly choosing buses at random and making it back to the hotel before sparrowfart.

The stash was pretty good, including a good-quality T-shirt; the chap handing these out very diplomatically estimated what size I needed, and it turned out he was right!

OCaml fun

As a sober and pragmatic language with a clear focus on its ecological niche, OCaml lacks the natural emergent drama of other functional programming communities. But we did feel the presence of the Institute for Type Safe Mimetics Research. It is an open secret that the Institute is merely a front for a secretive cult who gather, berobed in white lab coats, to pronounce ritual curses upon Larry Wall, C++ templates, and languages where everything is an unsigned 32 bit integer.

Personally I got a lot of value out of the whole event; I hope everyone else, and the sponsors, did too! Many thanks to all involved!