Hacker News new | comments | show | ask | jobs | submit login

The first of those definitions is about types as they are used to prove program correctness (by reducing expressiveness). The second one is about types as used in polymorphism, to increase a language expressiveness.

The most interesting part is that both usages use the same kinds of type. That's probably the source of the confusion.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact