Type systems for register allocation.

In [22], we design for a compiler intermediate language an annotated type system supporting inter-procedural register allocation and the representation of tuples and variants directly in the register file.