examples from learn you a Haskell book