[Haskell-cafe] instance deduction and phantom types