[Haskell-cafe] Why is the the transpose function in Data.List more complicated?