[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.

Cheers,
Hécate


[¹] 
https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/bugs.html#expressions-and-patterns

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

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



More information about the Haskell-Cafe mailing list