At least allow conditional removal of the Eq in deriving(Eq, Show) for implementing custom equality operators, for example for the equality of a commuting sort constructor.
Perhaps even adding directives to terms that commute, or that associate with each other so that adequate Eq implementations can be generated.
At least allow conditional removal of the Eq in deriving(Eq, Show) for implementing custom equality operators, for example for the equality of a commuting sort constructor.
Perhaps even adding directives to terms that commute, or that associate with each other so that adequate Eq implementations can be generated.