A Complement to Blame

Author Philip Wadler

Thumbnail PDF


  • Filesize: 423 kB
  • 12 pages

Document Identifiers

Author Details

Philip Wadler

Cite AsGet BibTex

Philip Wadler. A Complement to Blame. In 1st Summit on Advances in Programming Languages (SNAPL 2015). Leibniz International Proceedings in Informatics (LIPIcs), Volume 32, pp. 309-320, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2015)


Contracts, gradual typing, and hybrid typing all permit less-precisely typed and more-precisely typed code to interact. Blame calculus encompasses these, and guarantees blame safety: blame for type errors always lays with less-precisely typed code. This paper serves as a complement to the literature on blame calculus: it elaborates on motivation, comments on the reception of the work, critiques some work for not properly attending to blame, and looks forward to applications. No knowledge of contracts, gradual typing, hybrid typing, or blame calculus is assumed.
  • contracts
  • gradual typing
  • hybrid typing
  • blame calculus


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. Amal Ahmed, Robert Bruce Findler, Jeremy G. Siek, and Philip Wadler. Blame for all. In Principles of Programming Languages (POPL), pages 201-214, 2011. Google Scholar
  2. Andrej Bauer and Matija Pretnar. An effect system for algebraic effects and handlers. Logical Methods in Computer Science, 10(4), 2014. Google Scholar
  3. Gavin Bierman, Erik Meijer, and Mads Torgersen. Adding dynamic types to C#. In European Conference on Object-Oriented Programming, ECOOP'10. Springer-Verlag, 2010. Google Scholar
  4. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Links: Web programming without tiers. In Formal Methods for Components and Objects, pages 266-296. Springer, 2007. Google Scholar
  5. Robert Bruce Findler and Matthias Felleisen. Contracts for higher-order functions. In International Conference on Functional Programming (ICFP), pages 48-59, October 2002. Google Scholar
  6. Cormac Flanagan. Hybrid type checking. In Principles of Programming Languages (POPL), January 2006. Google Scholar
  7. Michael Greenberg, Benjamin C. Pierce, and Stephanie Weirich. Contracts made manifest. In Principles of Programming Languages (POPL), 2010. Google Scholar
  8. Jessica Gronski and Cormac Flanagan. Unifying hybrid types and contracts. In Trends in Functional Programming (TFP), April 2007. Google Scholar
  9. Robert Harper. Practical foundations for programming languages. Cambridge University Press, 2012. Google Scholar
  10. Anders Hejlsberg. Introducing TypeScript. Microsoft Channel 9 Blog, October 2012. Google Scholar
  11. Fritz Henglein. Dynamic typing: Syntax and proof theory. Science of Computer Programming, 22(3):197-230, 1994. Google Scholar
  12. David Herman, Aaron Tomb, and Cormac Flanagan. Space-efficient gradual typing. Higher-Order and Symbolic Computation, 23:167-189, 2010. Google Scholar
  13. Daan Leijen. Koka: Programming with row polymorphic effect types. In Mathematically Structured Functional Programming (MSFP), pages 100-126, 2014. Google Scholar
  14. Jacob Matthews and Robert Bruce Findler. Operational semantics for multi-language programs. In Principles of Programming Languages (POPL), pages 3-10, January 2007. Google Scholar
  15. John Reynolds. Types, abstraction, and parametric polymorphism. In R. E. A. Mason, editor, Information Processing, pages 513-523. North-Holland, 1983. Google Scholar
  16. Jeremy Siek, Peter Thiemann, and Philip Wadler. Blame and coercions: Together again for the first time. Technical report, University of Edinburgh, 2014. Google Scholar
  17. Jeremy G. Siek and Walid Taha. Gradual typing for functional languages. In Scheme and Functional Programming Workshop (Scheme), pages 81-92, September 2006. Google Scholar
  18. Jeremy G. Siek and Philip Wadler. Threesomes, with and without blame. In Principles of Programming Languages (POPL), pages 365-376, 2010. Google Scholar
  19. Richard Statman. A local translation of untyped [lambda] calculus into simply typed [lambda] calculus. Technical report, Carnegie-Mellon University, 1991. Google Scholar
  20. Nikhil Swamy, Juan Chen, Cédric Fournet, Pierre-Yves Strub, Karthikeyan Bhargavan, and Jean Yang. Secure distributed programming with value-dependent types. In International Conference on Functional Programming (ICFP), September 2011. Google Scholar
  21. Nikhil Swamy, Cedric Fournet, Aseem Rastogi, Karthikeyan Bhargavan, Juan Chen, Pierre-Yves Strub, and Gavin Bierman. Gradual typing embedded securely in javascript. In Principles of Programming Languages (POPL), January 2014. Google Scholar
  22. Sam Tobin-Hochstadt and Matthias Felleisen. Interlanguage migration: From scripts to programs. In Dynamic Languages Symposium (DLS), pages 964-974, October 2006. Google Scholar
  23. Philip Wadler. Theorems for free. In Functional Programming Languages and Computer Architecture (FPCA), September 1989. Google Scholar
  24. Philip Wadler. Comprehending monads. Mathemetical Structures in Computer Science, 2(4):461-493, 1992. Google Scholar
  25. Philip Wadler and Robert Bruce Findler. Well-typed programs can't be blamed. In European Symposium on Programming (ESOP), pages 1-16, March 2009. Google Scholar
  26. Alfred North Whitehead. An Introduction to Mathematics. Henry Holt and Company, 1911. Google Scholar
  27. Andrew K. Wright and Matthias Felleisen. A syntactic approach to type soundness. Information and Computation, 115(1):38-94, 1994. Google Scholar
  28. Boris Yankov. Definitely typed repository, 2013. URL: https://github.com/borisyankov/DefinitelyTyped.