List types for resource aware languages: an implicit name approach
Silvia Ghilezan, Jelena Ivetić, Pierre Lescanne, Simona Kašterović
TL;DR
Three calculi with implicit naming are introduced: $'L^{\mathcal{L}}$, $\Lambda^{\mathcal{L}}_\upsilon$, and $'L_{\textrm{\textregistered}}^{\mathcal{L}}$, each equipped with a unifying $\mathcal{L}$-type system to directly characterize linearity in the presence of implicit names. The authors prove $\mathcal{L}$-type preservation under reduction for the explicit-substitution and resource-controlled calculi and provide a practical Haskell implementation with read/readback translations that connect to the standard $\Lambda$-calculus. Through a bestiary of terms and concrete reductions (including SKK, booleans, and Church numerals), the work demonstrates how resource control (duplication/erasure) interacts with implicit naming. The framework offers a direct, implementable approach to resource-aware compilation and formalizes linearity in implicit-name settings, laying groundwork for integration with traditional type systems and broader linguistic applications.
Abstract
A novel formalisation of variable control in languages with implicit names based on de Bruijn indices is presented. We design and implement three languages: first, a restricted language with implicit names; then, a restricted calculus with implicit names and explicit substitution, and finally, an extended calculus with implicit names, implicit substitution and resource control. We propose a novel concept of list types, which are used to give a simple and manageable definition of linearity. We develop an implementation in Haskell.
