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 withUniversity of Edinburgh
  • , Robert Bruce FindlerAffiliated withUniversity 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.