[Haskell-beginners] Complex list manipulation