Lesson 7: Haskell: making our own types and typeclasses