Programming Languages and Systems

Volume 5502 of the series Lecture Notes in Computer Science pp 1-16

Well-Typed Programs Can’t Be Blamed

  • Philip WadlerAffiliated withLancaster UniversityUniversity of Edinburgh
  • , Robert Bruce FindlerAffiliated withLancaster UniversityUniversity of Chicago


We introduce the blame calculus, which adds the notion of blame from Findler and Felleisen’s contracts to a system similar to Siek and Taha’s gradual types and Flanagan’s hybrid types. We characterise where positive and negative blame can arise by decomposing the usual notion of subtype into positive and negative subtypes, and show that these recombine to yield naive subtypes. Naive subtypes previously appeared in type systems that are unsound, but we believe this is the first time naive subtypes play a role in establishing type soundness.