working through learn you a Haskell