• 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.

The ML Workshop looks fantastic — Jane Street, Jul 31, 2014

I'm a little biased, by being on the steering committee, but this year's ML workshop looks really interesting. Here's a link to the program:


It has a bunch of interesting papers, including work on cleaning up and simplifying first-class modules, type-level module aliases, new approaches in type-directed test generation, a couple of papers on implicits (how they've worked out in Scala, and a proposed approach in OCaml), and more.

The OCaml users-and-developers me…


Software Engineer (OCaml) at Cryptosense (Full-time) — Functional Jobs, Jul 31, 2014

About Cryptosense

Cryptosense is a Paris-based start-up producing vulnerability analysis software for cryptographic interfaces. We program in OCaml with occasional resort to other languages in order to communicate with various crypto platforms. Our technology is based on research at the French institute for computer science (INRIA) and uses techniques from formal analysis (model-checking) as well as smart fuzzing and symbolic machine learning.

About the Post

We're looking for experienced OCa…


Generalist Engineer at Esper (Full-time) — Functional Jobs, Jul 30, 2014

What You’ll Do:

  • Work in a small team to brainstorm, design, prototype, plan, execute, and ship out our latest and greatest features.
  • Own a feature within Esper.
  • Own release and QA cycles of your code.
  • Be able to quickly identify a problem, and debug someone else’s code, if need be.

What You’ll Bring:

  • BS in computer science or equivalent work experience.
  • Strong functional and objective-oriented programming and debugging skills.
  • Experience developing native mobile apps is preferred (J…

Weekly News — Caml Weekly News, Jul 29, 2014

  1. ppx_deriving 0.1
  2. User criteria for dependency solvers
  3. OCaml tutorial in Sweden
  4. ppx_deriving 0.2, ppx_deriving_protobuf 1.0.0
  5. Other OCaml News

Lawvere theories and monads — GaGallium, Jul 29, 2014

In this Agda file, I give an introduction to Lawvere theories and Monads. It's not exactly a "gentle" introduction because:

  1. I'm still trying to grok these things myself,
  2. I've to live up to my reputation of writing unfathomable gagaposts.

We'll start with the State monad and, briefly, a Tick monad. The game is the following: I'll present them syntactically -- through a signature -- and semantically -- through a collection of equations. I'll then show how the usual monad is related to this pre…


My first unikernel — Thomas Leonard, Jul 28, 2014

I wanted to make a simple REST service for queuing file uploads, deployable as a virtual machine. The traditional way to do this is to download a Linux cloud image, install the software inside it, and deploy that. Instead I decided to try a unikernel.

Unikernels promise some interesting benefits. The Ubuntu 14.04 amd64-disk1.img cloud image is 243 MB unconfigured, while the unikernel ended up at just 5.2 MB (running the queue service). Ubuntu runs a large amount of C code in security-critical p…


Full Time: Software Developer (Functional Programming) at Jane Street in New York, NY; London, UK; Hong Kong — Github OCaml jobs, Jul 28, 2014

Software Developer (Functional Programming)

Jane Street is looking to hire great software developers with an interest in functional programming. OCaml, a statically typed functional programming with similarities to Haskell, Scheme, Erlang, F# and SML, is our language of choice. We've got the largest team of OCaml developers in any industrial setting, and probably the world's largest OCaml codebase. We use OCaml for running our entire business, supporting everything from research to systems admi…


Release of OCaml-safepass 1.3 — OCamlCore Forge News, Jul 27, 2014

This version features a number of patches submitted by Jonathan Curran, bringing OCaml-safepass up-to-date with the latest Bcrypt sources and enabling GCC optimisations for compiling the C portions.

Cartesian product (redux) — Shayne Fletcher, Jul 26, 2014

Cartesian product (redux)

In this blog post we looked at programs to compute Cartesian Products. One algorithm (given here in OCaml) if you recall is

let prod l r =
let g acc a =
let f acc x =
(a, x) :: acc
in List.fold_left f acc r
in List.fold_left g [] l |> List.rev

In that earlier post I translated the above program into C++. This time I'm doing the same straightforward translation but using the Boost.MPL library to compute such products at compile time. It looks like this:


Doing Nothing in Mirage — Mindy Preston, Jul 25, 2014

It’s Northern Hemisphere summer right now, and in Wisconsin we’re having one of the loveliest ones I can remember. Today the temperature is hovering right at pleasant, there are high clouds blowing across the sky, the breeze is soothing, and birds are singing all over the place. It is not, in short, programming weather. It is sit-outside, read-a-novel, do-nothing weather.

We don’t often let our programs slack off, even when we let ourselves take a peaceful day. I got to wondering (staring o…