Type classes from the ground up

This is the companion article for this talk.