Notes for lecture 5 on type classes