Types are documentation

Credit goes to Tony Morris

Fast and loose reasoning is morally correct

Danielsson, Hughes, Jansson & Gibbons [DHJG06]

Functional programmers often reason about programs as if they were written in a total language, expecting the results to carry over to non-total (partial) languages. We justify such reasoning.


Theorems for Free!

Philip Wadler [Wad89]


Write down the definition of a polymorphic function on a piece of paper. Tell me its type, but be careful not to let me see the function’s definition. I will tell you a theorem that the function satisfies. The purpose of this paper is to explain the trick.



By Gleb Kanterov


  • 200
Loading comments...

More from Gleb Kanterov