[Haskell-cafe] Where does η-equivalence stop?

Hécate hecate at glitchbra.in
Mon Jun 20 08:38:46 UTC 2022

Hi Café!

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 
GHC manual.



[²] https://github.com/ndmitchell/hlint#bugs-and-limitations

Hécate ✨
🐦: @TechnoEmpress
IRC: Hecate
WWW: https://glitchbra.in

More information about the Haskell-Cafe mailing list