There are other language extensions to make the haskell type system undecidable. The classic example is `RankNTypes`
E.g. you can proof that type systems of rank n >= 3 are undecidable. [0]
I think that's why haskell has both Rank2Types and RankNTypes as a language extension. So you can still use higher rank types without running into decidability problems up to rank 2.
E.g. you can proof that type systems of rank n >= 3 are undecidable. [0]
I think that's why haskell has both Rank2Types and RankNTypes as a language extension. So you can still use higher rank types without running into decidability problems up to rank 2.
[0] https://dl.acm.org/doi/10.1145/182409.182456