Documentation for OxCaml extensions
This documentation was written by the OxCaml developers at Jane Street, with contributions from collaborators at the University of Cambridge and at Tarides.
The documentation section of this website is extracted from our GitHub repo. Feel free to submit a pull request modifying this directory to improve our documentation!
Looking for a place to discuss OxCaml? Try the OCaml community discord server.
Bibliography
We think the ideas powering OxCaml are pretty great, and we’re keen on sharing them with the world via publications and presentations. Here are some about the technology underlying OxCaml:
Peer-reviewed publications
-
Oxidizing OCaml with Modal Memory Management. Anton Lorenzen, Leo White, Stephen Dolan, Richard A. Eisenberg, and Sam Lindley. ICFP’24.
-
Data Race Freedom à la Mode. Aïna Linn Georges, Benjamin Peters, Laila Elbeheiry, Leo White, Stephen Dolan, Richard A. Eisenberg, Chris Casinghino, François Pottier, and Derek Dreyer. POPL’25.
Presentations
-
Unboxed Types for OCaml. Stephen Dolan. Jane Street tech talk, Sept 26, 2019.
-
Unboxed Types for OCaml. Richard Eisenberg. ML Workshop, Sept 15, 2022.
-
Stack Allocation for OCaml. Stephen Dolan. OCaml Workshop, Sept 16, 2022.
-
Semi-explicit Polymorphic Parameters. Leo White. ML Workshop, Sept 8, 2023.
-
Layout Polymorphism: Using static computation to allow efficient polymorphism over variable representations. Richard Eisenberg. ML Workshop, Sept 8, 2023.
-
Flambda 2 Types: An abstract domain for static analysis of functional programs. Pierre Chambart. ML Workshop, Sept 8, 2023.
-
Efficient OCaml Compilation with Flambda 2. Pierre Chambart. OCaml Workshop, Sept 9, 2023.
-
Oxidizing OCaml with Modal Memory Management. Anton Lorenzen. ICFP, Sept 4, 2024.
-
Labeled Tuples. Chris Casinghino. ML Workshop, Sept 6, 2024.
-
Flambda2 Validator. Irene Yoon. OCaml Workshop, Sept 7, 2024.
-
Mixed Blocks: Storing More Fields Flat. Nick Roberts. OCaml Workshop, Sept 7, 2024.
-
A Non-allocating Option. Richard Eisenberg. OCaml Workshop, Sept 7, 2024.
-
Data Race Freedom à la Mode. Aïna Linn Georges. POPL, Jan 23, 2025.
-
Making OCaml Safe for Performance Engineering. Chris Casinghino. Jane Street Tech Talk, Mar 20, 2025.
Upstreaming
It is a goal of the OxCaml project to, eventually, with the support of the OCaml community, integrate these extensions into upstream OCaml. For some extensions, this has already begun:
- Immutable arrays will be available in OCaml 5.4.
- Labeled tuples will be available in OCaml 5.4.
- Include-functor is being upstreamed as of summer 2025. Expect it in OCaml 5.5.
- Polymorphic parameters is being upstreamed as of summer 2025. Expect it in OCaml 5.5.
- Module strengthening is being upstreamed as of summer 2025 (though with different syntax). Expect it in OCaml 5.5.
The other extensions are, as of summer 2025, too fresh and too much in flux to be good candidates for inclusion in OCaml. As we gain experience with these experimental additions, they will be considered as candidates for upstreaming.