Michael Lee

Writing

Program Synthesis

Type-and-example-directed synthesis and paramorphisms, and what programming languages, machine learning and human-computer interaction each bring to the synthesis problem.

Module Systems

Translucent sums and F-ing modules, and whether there is a canonical way to build a programming language with modules.

Abstract Interpretation

The Octagon and Fast Polyhedra domains as two answers to the price of precision, and what they say about the philosophy of abstract interpretation.

Dependent Types

Expressiveness, usability and efficiency in Epigram and Idris, and what they say about designing a good dependently typed language.

Delimited Continuations

Three designs for delimited continuations, in Scala, OCaml and WebAssembly, and what they say about how such features are designed and judged.