[Haskell-cafe] Overlapping Instances with Functional Dependencies