I think in Haskell you need to add:
{-# LANGUAGE UndecidableInstances #-}
to get an Undecidable type system. {-# LANGUAGE UndecidableInstances #-}
to get an Undecidable type system.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.