Proposal: Make Eq type class single method

Joachim Breitner mail at joachim-breitner.de
Mon Oct 25 09:04:50 UTC 2021


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
  

-- 
Joachim Breitner
  mail at joachim-breitner.de
  http://www.joachim-breitner.de/




More information about the Libraries mailing list