My (tentative) take on exercises and related code from Real-World Haskell