LearnHaskell chapter 2