Existing approaches to object encapsulation either rely on ad hoc syntactic restrictions or require the use of specialised type systems. Syntactic restrictions are difficult to scale and to prove correct, while specialised type systems require extensive changes to programming languages. We demonstrate that confinement can be enforced cheaply in Featherweight Generic Java, with no essential change to the underlying language or type system. This result demonstrates that polymorphic type parameters can simultaneously act as ownership parameters and should facilitate the adoption of confinement and ownership type systems in general-purpose programming languages.

Journal of Functional Programming
Carleton University

Potanin, A. (Alex), Noble, J. (James), Clarke, D. (Dave), & Biddle, R. (2006). Featherweight generic confinement. Journal of Functional Programming, 16(6), 793–811. doi:10.1017/S0956796806006125