Type-based modeling & looking back!

Type-based modeling

Typing more well-behaved programs

Associated types

code

Typing less bad-behaved programs

Kinds

Data kinds

Type families

Data kinds and type-classes

Forgetting types

Singleton types

code

Summary