[Graeme] Neophyte guide to scala, type classes