Description
A quite thorough description of the issue is already written so I won't repeat it all here.
Basically some of our NonZero
instances resolve through sheer luck of the details of the current implementation and changes to make the upstream algorithm less ad hoc break stdlib
. The issue boils down to some non-injective functions (like /
and %
) having accompanying cong
functions with implicits that should be explicit as they can't in general be inferred [see details at above post.]. So we should fix those cong
routines to not be so fragile.
This will be a breaking change, but one that we are forced to do, as our current implementation should be regarded as buggy because it relies on 'sheer luck' to work.
While I am intending to fix this myself, I'm not sure how fast I'll be, so I would be very happy to collaborate with others on that.