Все, что связано с более высоким рейтингом (то есть "первоклассным") полиморфизмом.Например:
lambda f : (forall A. A -> A). (f Int 1, f String "hello")
Эта функция будет иметь тип (forall A. A -> A) -> Int * String
, который не может быть выражен в HM, где все схемы полиморфного типа должны быть в форме «prenex» (т.е. квантификатор может присутствовать толькоснаружи, никогда не вложенный).