[Haskell-beginners] Identifying general patterns / typeclass instances