• en

OCaml Planet

The OCaml Planet aggregates various blogs from the OCaml community. If you would like to be added, read the Planet syndication HOWTO.

932 blog posts are available. You can read the 30 more recent ones below or view older ones.

Custom operators in OCaml — Shayne Fletcher, Sep 20, 2016

If like me, you've always been a little hazy on the rules for defining OCaml operators then, this little post might help!

It is possible to "inject" user-defined operator syntax into OCaml programs. Here's how it works. First we define a set of characters called "symbol characters".

Symbol character (definition)

A character that is one of

! $ % & * + - . / : < = > ? @ ^ |

Prefix operators

The ! ("bang") prefix operator, has a predefined semantic as the operation of "de-referencing" a refe…


opam 2.0 preview release! — OCaml Platform (Louis Gesbert), Sep 20, 2016

We are pleased to announce a preview release for opam 2.0, with over 700 patches since 1.2.2. Version 2.0~alpha4 has just been released, and is ready to be more widely tested.

This version brings many new features and changes, the most notable one being that OCaml compiler packages are no longer special entities, and are replaced by standard package definition files. This in turn means that opam users have more flexibility in how switches are managed, including for managing non-OCaml …


ICFP 2016 liveblog available — OCaml Labs, Sep 18, 2016

The annual ICFP conference begins today, with the initial workshops kicking off 100s of talks and paper presentations, including several from OCaml Labs.

We've created a liveblog unikernel to keep track of the proceedings, at icfp2016.mirage.io. This is powered by the Canopy system built by Enguerrand Decorne during his internship at OCaml Labs. It uses much of the software pieces built for MirageOS, including Irmin to track the Git data and live update the blog in response to pushes.

If you a…


Effective parallelism with Reagents @ London Facebook Faculty Summit — OCaml Labs, Sep 14, 2016

KC was invited to speak at the most recent London Facebook Faculty Summit alongside other faculty guests, Facebook engineers and researchers to discuss recent developments in ML and programming languages.

Lightning talks from guests and hosts kickstarted the day, followed by scheduled talks including Media:Effective_Parallelism_with_Reagents.pdf where KC presented the latest progress in the OCaml Multicore project. Algebraic effects allow cooperative concurrency whilst the Reagents library prese…


What the interns have wrought, 2016 — Jane Street (Yaron Minsky), Sep 14, 2016

Now that the interns have mostly gone back to school, it's a good time to look back at what they did while they were here. We had a bumper crop -- more than 30 dev interns between our London, New York and Hong Kong offices -- and they worked on just about every corner of our code-base.

In this post, I wanted to talk about just one of those areas: building efficient, browser-based user interfaces.

Really, that's kind of a weird topic for us. Jane Street is not a web company, and is not by nature …


Weekly News — OCaml Weekly News, Sep 13, 2016

  1. flyer available for the OCaml MOOC, course starts Sep 26
  2. Other OCaml News

planet.ocamlcore.org is deprecated — OCamlCore Forge News ( (Sylvain Le Gall), Sep 09, 2016

As announced a month ago [1], I intend to stop running the planet in the next few hours. The website http://planet.ocamlcore.org will redirect to the new planet. If you had problem reading the old planet, you should switch to the new one. The new planet is located here: http://ocaml.org/community/planet/ Regards Sylvain Le Gall [1]: https://forge.ocamlcore.org/forum/forum.php?forum_id=937

The new and improved Programming languages zoo — Andrej Bauer, Sep 07, 2016

It is my pleasure to announce the new and improved Programming languages Zoo, a potpourri of miniature but fully functioning programming language implementations. The new zoo has a decent web site, it is now hosted on GitHub, and the source code was cleaned up. Many thanks to Matija Pretnar for all the work.

The purpose of the zoo is to demonstrate design and implementation techniques, from dirty practical details to lofty theoretical considerations:

  • functional, declarative, object-oriented, a…

Weekly News — OCaml Weekly News, Sep 06, 2016

  1. BuckleScript 1.0: readable JS backend for OCaml
  2. Two-year research engineer/postdoc position in evolutionary biology.
  3. Ocaml 4.04.0+beta2
  4. Other OCaml News

SSH access to the forge: moving from port 22 to port 522 — OCamlCore Forge News ( (Sylvain Le Gall), Sep 04, 2016

TL;DR I have changed the SSH port to reduce the noise of SSH attacks. As of today, the system has an average of 1 legit SSH connection per day (and this is from my own automatic system) and the system bans ~20 IPs per day because of people trying to brute force passwords. These attacks are actually pretty useless because the system doesn't allow password login. Nevertheless, it triggers ~20 mails and this is a lot of noise for nothing. Changing the SSH port will remove 99% of these attacks (te…Read more...

Unraveling of the tech hiring market — Jane Street (David Powers), Aug 31, 2016

Recruiting talented people has always been challenging.

In some years that meant competing with a hot new company that aggressively courted every fresh graduate with promises of stock options and IPO glory.  In other years there wasn’t a specific company so much as an entire rising industry looking for people (I’m looking at you cloud services, driverless cars, and peer-to-peer sharing).  Either way, we understood the yearly back and forth.  Our job was to explain to candidates how we sta…


Do you love dev tools? Come work at Jane Street. — Jane Street (Yaron Minsky), Aug 30, 2016

In the last few years, we've spent more and more effort working on developer tools, to the point where we now have a tools-and-compilers group devoted to the area, for which we're actively hiring.

The group builds software supporting around 200 developers, sysadmins and traders on an OCaml codebase running into millions of lines of code. This codebase provides the foundation for the firm's business of trading on financial markets around the world.

Software that the group develops, much of which…


Formal proofs are not just deduction steps — Andrej Bauer, Aug 30, 2016

I have participated in a couple of lengthy discussions about formal proofs. I realized that an old misconception is creeping in. Let me expose it.

In traditional mathematical logic (by which I mean first-order logic, as established by Hilbert, Ackermann, Skolem, Gödel and others) the concepts of logical formula and formal proof are the central notions. This is so because the main goal of traditional logic is the meta-mathematical study of provability, i.e., what can be proved in principle. …


Weekly News — OCaml Weekly News, Aug 30, 2016

  1. OCaml 4.04.0+beta1
  2. Asetmap 0.8.0
  3. CSML: bindings between OCaml and .NET (now fully open-source!)
  4. Emacs + OCaml = Ecaml
  5. Other OCaml News

Full Time: Software Developer (Functional Programming) at Jane Street in New York, NY; London, UK; Hong Kong — GitHub Jobs, Aug 29, 2016

Software Developer

Jane Street is a proprietary quantitative trading firm, focusing primarily on trading equities and equity derivatives. We use innovative technology, a scientific approach, and a deep understanding of markets to stay successful in our highly competitive field. We operate around the clock and around the globe, employing over 400 people in offices in New York, London and Hong Kong.

The markets in which we trade change rapidly, but our intellectual approach changes faster still…


Perfectly balanced binary search trees — Shayne Fletcher, Aug 27, 2016

The type of "association tables" (binary search trees).

type (α, β) t =
| Empty
| Node of (α , β) t * α * β * (α, β) t * int
There are two cases : a tree that is empty or, a node consisting of a left sub-tree, a key, the value associated with that key, a right sub-tree and, an integer representing the "height" of the tree (the number of nodes to traverse before reaching the most distant leaf).

The binary search tree invariant will be made to apply in that…


Full-Stack Developer (Haskell/PureScript) at CollegeVine (Full-time) — Functional Jobs (FunctionalJobs.com), Aug 26, 2016


CollegeVine is looking for a product-focused full-stack developer to help engineer the future of mentorship and higher education attainment.

There aren't many industries left that haven't been significantly disrupted by technology in some way, but you're reading about one right here! You will find many opportunities to apply high-leverage computer science (think machine learning, probabilistic reasoning, etc.) as well as plenty of opportunities for the more human side o…


Weekly News — OCaml Weekly News, Aug 23, 2016

  1. OCaml-MariaDB
  2. CPS converting existential data type
  3. OASIS v0.4.7
  4. Other OCaml News

OASIS v0.4.7 release — OCamlCore Forge News ( (Sylvain Le Gall), Aug 22, 2016

Read the full blog post here: http://le-gall.net/sylvain+violaine/blog/index.php?post/2016/08/22/Release-of-OASIS-0.4.6

Release of OASIS 0.4.7 — Sylvain Le Gall (gildor), Aug 22, 2016

I am happy to announce the release of OASIS v0.4.7.

Logo OASIS small

OASIS is a tool to help OCaml developers to integrate configure, build and install systems in their projects. It should help to create standard entry points in the source code build system, allowing external tools to analyse projects easily.

This tool is freely inspired by Cabal which is the same kind of tool for Haskell.

You can find the new release here and the changelog here. More information about OASIS in general on the OASIS …


Weekly News — OCaml Weekly News, Aug 16, 2016

  1. Tools and compilers positions at Jane Street
  2. OCaml 4.04.0+beta1
  3. Tyre
  4. Job opportunity for OCaml programmer
  5. Other OCaml News

International Summer School on Metaprogramming — OCaml Labs, Aug 15, 2016

The Orchard
Hard at work

This summer we hosted the first International Summer School for Metaprogramming at Robinson College, Cambridge. The event was a huge success and it would not have been possible without the generous financial support from our industrial parters: Facebook, Microsoft, Oracle and OCaml Labs. We were fortunate to have an overwhelming number of people register interest, and we welcomed students and speakers from 12 different countries, all with varying expertise and exper…


Software Engineer (Haskell/Clojure) at Capital Match (Full-time) — Functional Jobs (FunctionalJobs.com), Aug 12, 2016


Capital Match is a leading marketplace lending and invoice financing platform in Singapore. Our in-house platform, mostly developed in Haskell, has in the last year seen more than USD 10 million business loans processed with a strong monthly growth (current rate of USD 1.5-2.5 million monthly). We are also eyeing expansion into new geographies and product categories. Very exciting times!

We have just secured another funding round to build a world-class technology as the key business d…


planet.ocamlcore.org will soon be deprecated — OCamlCore Forge News ( (Sylvain Le Gall), Aug 12, 2016

For the past 8 years the OCaml Planet was running on http://planet.ocamlcore.org. A few years ago, another planet has forked and it is now better maintained than the old one. This new planet is located here http://ocaml.org/community/planet/ and the old planet will soon redirect to this new location. If you use a feed reader, I recommend to point it directly to the new planet: http://ocaml.org/feed.xml

(Senior) Scala Developer at SAP SE (Full-time) — Functional Jobs (FunctionalJobs.com), Aug 11, 2016

About SAP

SAP is a market leader in enterprise application software, helping companies of all sizes and industries run better. SAP empowers people and organizations to work together more efficiently and use business insight more effectively. SAP applications and services enable our customers to operate profitably, adapt continuously, and grow sustainably.

What you'll do:

You will be a member of the newly formed Scala development experience team. You will support us with the design and d…


Multicore OCaml and Reagents: LDN Functionals @ Jane Street — OCaml Labs, Aug 10, 2016


The recent LDN Functionals event at Jane Street was a sell-out with a waiting list, so thankfully Functional Works arranged another packed evening of talks on 2nd August. Yaron Minsky, Sebastian Funk and our own KC Sivaramakrishnan all spoke to an active crowd.

The lineup was:

  • Yaron Minsky - Jane Street - "Building Reactive Web Applications Without Really Trying"
  • KC Sivaramakrishnan - OCaml Labs - "OCaml multicore and programming with Reagents. (slides video)
  • Sebastian Funk - Jane Street …

Head of Data Science at Capital Match (Full-time) — Functional Jobs (FunctionalJobs.com), Aug 09, 2016


Capital Match is a leading marketplace lending and invoice financing platform in Singapore. Our in-house platform has in the last year seen more than USD 10 million business loans processed with a strong monthly growth (current rate of USD 1.5-2.5 million monthly). We are also eyeing expansion into new geographies and product categories. Very exciting times ahead of the company!

We have just secured another funding round to build a world-class technology as the key business differenti…


What is a formal proof? — Andrej Bauer, Aug 09, 2016

Mike Shulman just wrote a very nice blog post on what is a formal proof. I much agree with what he says, but I would like to offer my own perspective. I started writing it as a comment to Mike’s post and then realized that it is too long, and that I would like to have it recorded independently as well. Please read Mike’s blog post first.

Just as Mike, I am discussing here formal proofs from the point of view of proof assistants, i.e., what criteria need to be satisfied by the thing…


Weekly News — OCaml Weekly News, Aug 09, 2016

  1. Make OCaml library available to Java
  2. OCaml-Fiddle (try OCaml everywhere)
  3. Other OCaml News

Hask is not a category — Andrej Bauer, Aug 06, 2016

This post is going to draw an angry Haskell mob, but I just have to say it out loud: I have never seen a definition of the so-called category Hask and I do not actually believe there is one until someone does some serious work.

Let us look at the matter a bit closer. The Haskell wiki page on Hask says:

The objects of Hask are Haskell types, and the morphisms from objects A to B are Haskell functions of type A -> B. The identity morphism for object A is id :: A -> A, and the composition o…


View older blog posts.