[Haskell-cafe] How Type inference work in presence of Functional Dependencies