kirancodes.me
To Proof Maintenance & Beyond!

Types are calling conventions

Maximilian C. Bolingbroke, Simon L. Peyton Jones

Abstract

It is common for compilers to derive the calling convention of a function from its type. Doing so is simple and modular but misses many optimisation opportunities, particularly in lazy, higher-order functional languages with extensive use of currying. We restore the lost opportunities by defining Strict Core, a new intermediate language whose type system makes the missing distinctions: laziness is explicit, and functions take multiple arguments and return multiple results.

Related papers