Solutions for the first half of Haskell lists problems