-- {-# LANGUAGE Haskell2010 #-} {-# LANGUAGE RankNTypes #-} a = x y x :: (i -> forall p. p f i) -> i x _ = undefined y :: i -> (forall p f. p f i) y = undefined