I'll just repeat two things from that discussion:
- This is *not* just an issue of "beginners may be confused": Andrew Farmer describes encountering what I think is the most disconcerting part of having these instances: you can no longer have confidence in the process of change-the-type-then-just-fix-the-type-errors: https://mail.haskell.org/pipermail/libraries/2016-February/026782.html
- The tl;dr of my argument last time: "Part of the power of a type system is which program it rejects, and I'm arguing we're cluttering the space of valid programs."
The last time this was discussed, we planned to implement a flag to forbid certain instances. Has anyone taken that up?