This extends D1585 with proper support for infix duplicate record fields.
In particular, it is now possible to declare record fields as infix in a
module for which DuplicateRecordFields is enabled, fixity is looked up
correctly and a readable (although unpleasant) error message is generated
if multiple fields with different fixities are in scope.
As a bonus, DEPRECATED and WARNING pragmas now work for
duplicate record fields. The pragma applies to all fields with the given label.
In addition, a couple of minor DuplicateRecordFields bugs, which were
pinpointed by the T11167_ambig test case, are fixed by this patch:
- Ambiguous infix fields can now be disambiguated by putting a type signature on the first argument
- Polymorphic type constructor signatures (such as ContT () IO a in T11167_ambig) now work for disambiguation