New implementation for `ImpredicativeTypes`