[Haskell-cafe] Where does η-equivalence stop?
hecate at glitchbra.in
Mon Jun 20 08:38:46 UTC 2022
I was wondering if anyone knew of a centralised list of occurrences
where GHC Haskell stops upholding η-equivalence. I am interested in both
type changes and operational semantics.
So far I've collected the following things:
* Rank-2 types
* Monomorphism restriction
* The presence of seq
* Non-pedantic bottoms
One source is the GHC Manual¹, and Neil Mitchell pointed me to the list
of bugs and limitations of HLint².
If you have other examples, or explanations of the mechanisms at play
here, I would be very interested, and intend to upstream those in the
More information about the Haskell-Cafe