[Haskell-cafe] Reflection functional dependency as an associated type?