more work on 8. Making Our Own Types and Typeclasses