Title: Spreading the Joy. Making “Stricterness” More Relevant
(Joint work with Jurriaan Hage)
Adapting a run-of-the-mill strictness analysis based on relevance typing to have it take into account the increase in strictness incurred from programmer-enforced evaluation-order overrides turns out to be a tricky business: naïve extensions of relevant type systems that deal with such overrides are typically either unsound or otherwise ineffective. Still, accurately tracking the effects of locally enforced eagerness on the reductive behaviour of lazy programs may allow for the “stricterness” of a single programmer-annotated function to propagate to many of its call-sites and, hence, further improve the run-time behaviour of hand-annotated programs. In this talk, we consider a substructural type system that carefully combines the more traditional notion of relevance with a notion of applicative use. Program transformations based on this type system are both sound and effective.