Speaker

Leo White

Leo White

Software engineer at Jane Street on the Tools & Compilers team, working on the frontend of the OCaml compiler — the part concerned with language features, type checking, and type inference rather than code generation.

White came to language design by accident: a Cambridge PhD student writing a C compiler in OCaml, he found a feature he wanted and added it to the language instead of finishing his thesis. Anil Madhavapeddy spotted the patch and recruited him to OCaml Labs, a Jane Street-funded project to advance the OCaml compiler. He has since worked on several of the language’s most significant recent additions and proposals, including GADTs (generalised algebraic data types), modular implicits, local types, and unboxed types.

Core positions

White holds that language design is a design discipline rather than a science — closer in character to architecture than to controlled experiment, where mathematical constraints bound what is possible but judgment decides what is good. He is a committed advocate for OCaml’s module system as a productive constraint on language evolution: modules and functors force every feature to declare its interface, which rules out structurally anti-modular mechanisms like Haskell’s type classes and keeps the language honest. He prefers evolving existing languages over designing new ones, arguing that new languages run on easy mode and that real influence comes from working within a community’s accumulated constraints. His long-run goal for OCaml is a language that can compete with C++ and Rust for low-level systems work while retaining the high-level ergonomics — strong types, garbage collection by default, a rich module system — that make it productive for large-scale software.

In the wiki

  • Leo White on Language Design — Signals and Threads, October 2020: language design as discipline, OCaml’s modularity, the performance gap, and the road to dependent types