# Type system

- Page: https://shared.btbytes.com/p/type-system
- Date: 2018-02-20

Ability to read type rules is an important skill when reading Programming
Langauge theory papers.

The two books that have been mentioned in relation to learning type systems
are:

- Types and Programming Languages by Benjamin Pierce
- Practical Foundations for Programming Languages by Robert Harper

## Papers

-   @Cardelli:1996:TS:234313.234418 [PDF](http://web.archive.org/web/20120417011612/http://www.cs.colorado.edu/~bec/courses/csci5535/reading/cardelli-typesystems.pdf)
- Uniqueness typing. See also: [An Interactive Tutorial of the Sequent Calculus](http://logitext.mit.edu/logitext.fcgi/tutorial)
- [Fool's choice: A tale of two types](http://chromaticleaves.com/posts/type-systems-fools-choice.html)

## Discussions

- [What are the safety benefits of a type system? - Programmers Stack Exchange](http://programmers.stackexchange.com/questions/215482/what-are-the-safety-benefits-of-a-type-system)
- [How to crap-talk Ruby and Clojure when the authors of these languages are in the audience : programming](https://www.reddit.com/r/programming/comments/5ysjei/how_to_craptalk_ruby_and_clojure_when_the_authors/)


## Articles

- [Why Type Systems Matter | Matthias Endler](http://matthias-endler.de/2017/why-type-systems-matter/) ; August 2017.
- [What is Hindley-Milner? (and why is it cool?) - Code Commit](http://www.codecommit.com/blog/scala/what-is-hindley-milner-and-why-is-it-cool); [HN](https://news.ycombinator.com/item?id=15054752)
- [What to know before debating type systems | Ovid [blogs.perl.org]](https://blogs.perl.org/users/ovid/2010/08/what-to-know-before-debating-type-systems.html)


## Courses

- [Type Systems Seminar (Winter 2018 @ Northwestern)](https://github.com/tov/type-systems-seminar/blob/master/syllabus.md)
