Open Source
FP Launchpad faculty and affiliates are active contributors to open source software, with deep involvement in the OCaml ecosystem and beyond. Below is a snapshot of key contributions, organised by theme.
OCaml 5: Multicore & Algebraic Effects
The most significant contribution — bringing native multicore support and algebraic effect handlers into OCaml 5. This was a multi-year research and engineering effort that fundamentally changed what OCaml can do for concurrent systems programming.
Related research: Effect Handlers & Language Design, Concurrency & Parallelism
| ocaml-multicore | The multicore OCaml fork that merged into OCaml 5 |
| ocaml-aeio | Asynchronous effect-based I/O |
| delimcc_of_fxhandler | Delimited continuations via OCaml 5 effect handlers |
| ocaml15-eff | Early algebraic effects demos (OCaml Workshop 2015) |
| eff_delimcc_ocaml | Translations between Eff, Delimcc and Multicore OCaml |
| reify_reflect_concurrency | Monadic reflections on concurrency |
| async-io-handler | Async I/O with effect handlers |
| wasmfx | Algebraic effects for WebAssembly |
| sml-effect-conc | Effects-based concurrency in Standard ML |
Distributed & Eventually Consistent Systems
Building mergeable and CRDT-based data structures on top of distributed storage, with Irmin (a Git-like database written in OCaml) as a central platform.
Related research: Distributed Systems & Consistency
| irmin | Distributed database following Git design principles |
| ezirmin | High-level API over Irmin |
| irmin-datatypes | Mergeable functional data structures for Irmin |
| Quelea | Declarative programming over eventually consistent stores (Cassandra) in Haskell |
| mergeable-vector | Mergeable vectors with operational transformation |
| merge-ropes | Mergeable rope data structures |
Multicore Runtimes & Performance
Low-level work on multicore language runtimes, benchmarking infrastructure, and profiling tooling.
Related research: Concurrency & Parallelism, Memory Management & Runtime Systems
| multiMLton | Multicore MLton — scalable multicore Standard ML |
| mlton-zmq | Distributed MLton over ZeroMQ |
| sandmark | Benchmarking suite for the OCaml compiler |
| ocaml_runtime_stats | Runtime statistics tooling for OCaml |
| runtime_events_tools | Tooling for OCaml 5 runtime events |
| tsx-tools | Header files for Intel TSX (hardware transactional memory) |
RISC-V & Cross-Platform OCaml
Porting the OCaml system to RISC-V — important for OCaml's long-term portability across hardware architectures.
| riscv-ocaml | RISC-V port of the OCaml system |
| riscv-ocaml-cross | RISC-V OCaml cross-compiler toolchain |
| opam-cross-shakti | OPAM support for the Shakti RISC-V processor |
OCaml Ecosystem & Tooling
Maintenance and contributions across the broader OCaml ecosystem — package management, web libraries, and the official OCaml website.
| opam | OCaml source-based package manager |
| opam-repository | Main public package repository for OPAM |
| lwt | Cooperative threading for OCaml |
| ocaml-cohttp | Lightweight HTTP library |
| httpaf | High-performance, memory-efficient web server in OCaml |
| js_of_ocaml | Compiler from OCaml to JavaScript |
| ocaml.org | The official OCaml website |
Teaching & Course Materials
Extensive open course content published from IIT Madras, covering functional programming, concurrency, compilers, and formal verification.
| cs3100_m25 | Paradigms of Programming — Monsoon 2025 |
| cs3100_m20 | Paradigms of Programming — Monsoon 2020 |
| cs3100_f19 | Paradigms of Programming — Fall 2019 |
| cs6868_s26 | Concurrent Programming |
| cs6225_s25_iitm | Programs and Proofs (Coq) — Spring 2025 |
| cs6225_s21_iitm | Programs and Proofs (Coq) — Spring 2021 |
| cs3300_m22 | Compiler Design |
| ocaml-tutorial | OCaml tutorial at Abstraction 2019 |
| learn-ocaml-workshop-2024 | Jane Street OCaml Workshop 2024 |