@Article{Wel+Dim+Mul+Tur:JFP-ta, author = {J.~B. Wells and Allyn Dimock and Robert Muller and Franklyn Turbak}, title = {A Calculus with Polymorphic and Polyvariant Flow Types}, journal = jfp, year = {200X}, xoptvolume = {??}, xoptnumber = {??}, xoptmonth = {???}, xoptpages = {??--??}, note = {To appear. Supersedes \cite{Wel+Dim+Mul+Tur:TAPSOFT-1997}}, abstract = {We present $\lambda^{\mathrm{CIL}}$, a typed $\lambda$-calculus which serves as the foundation for a typed intermediate language for optimizing compilers for higher-order polymorphic programming languages. The key innovation of $\lambda^{\mathrm{CIL}}$ is a novel formulation of intersection and union types and flow labels on both terms and types. These \emph{flow types} can encode polyvariant control and data flow information within a polymorphically typed program representation. Flow types can guide a compiler in generating customized data representations in a strongly typed setting. Since $\lambda^{\mathrm{CIL}}$ enjoys confluence, standardization, and subject reduction properties, it is a valuable tool for reasoning about programs and program transformations.}, }