Proposal: Make Eq type class single method
Hécate
hecate at glitchbra.in
Mon Oct 25 11:21:45 UTC 2021
Hi Joachim,
Thank you for this summary of your findings.
In echo with Tom Ellis' response, I too find the added benefits a tad
too slim when compared to the changes that will have to be undertaken by
package authors who have (/=) defined in their instances.
Let's focus on tackling problems that have plagued us for way too long
instead! :)
Cheers,
Hécate
Le 25/10/2021 à 11:04, Joachim Breitner a écrit :
> Hi,
>
> current status of this train of thought:
>
> * Most people here were sympathetic about the removal of (/=) from Eq.
>
> * It would break a bit of code, but with an easy and backward-
> compatible fix.
>
> * The GHC implementation is straight forward:
> https://gitlab.haskell.org/ghc/ghc/-/merge_requests/6793
>
> * There is _no_ measurable performance benefit in real-world-code.
> A few of GHC’s perf regression tests benefit slightly:
>
> T12234(optasm) ghc/alloc 57633544.0 55409592.0 -3.9% GOOD
> T18304(normal) ghc/alloc 87566616.0 83503296.0 -4.6% GOOD
> T783(normal) ghc/alloc 389240752.0 377482584.0 -3.0% GOOD
> T1969(normal) ghc/max 19869024.0 19071720.0 -4.0%
> T11545(normal) ghc/max 35580832.0 33828936.0 -4.9%
>
> * There is a problem with rules matching on class ops of single method
> classes: https://gitlab.haskell.org/ghc/ghc/-/issues/20535
> I consider this a GHC bug that needs to be fixed anyways, so let’s
> assume for now it will be fixed one way or another before Eq becomes
> a single method class.
>
> With this, I’d like to formally bring this change before the CLC, and
> ask for its support for (or explicit rejection of) this change.
>
> Cheers,
> Joachim
>
>
--
Hécate ✨
🐦: @TechnoEmpress
IRC: Hecate
WWW: https://glitchbra.in
RUN: BSD
More information about the Libraries
mailing list