ch 7 learn you a haskell - playing with types