[Haskell-cafe] Help with complicated type inference