[GHC] #9612: Use functional dependencies to give more specific error messages