co_lc is a lambda calculus extended with stackful coroutines. An efficient implementation for the compilation and virtual machine execution of co_lc is presented. The implementation supports tail-call optimization and eliminates all indirect calls by defunctionalizing closures.
I describe a simple, "zero-cost" system for adding flow-typing-like refinement of anonymous sum types to a language, with a model of compilation that supports unboxed, non-uniform representations. The system extends naturally to also support type expansion (the opposite of refinement) thanks to its reliance on unification.
We design a type inference algorithm for the FT calculus of "Sound and Complete Flow Typing with Unions, Intersections, and Negations" (Pearce 2012), proving that it infers minimal types where they are expressible and infers all minimal user-typable types.
We present an extension of Lindig's Strictly Prettier (2000) pretty-printer with support for harmoniously formatting a document and arbitrary annotations attached to its terms.
We discuss a simple language and type system that provides for flow typing with records and union types. We also present an extension that generalizes to near-arbitrary narrowing of types at the expense of greater runtime costs.