Почему'не для всех (использование RankNTypes)применяется по умолчанию?

Я не так знаком с forall, но недавно читал этот вопрос:Что делает ключевое слово forall в Haskell/GHC?

В одном из ответов есть этот пример:

 {-# LANGUAGE RankNTypes #-}
 liftTup :: (forall x. x -> f x) -> (a, b) -> (f a, f b)
 liftTup liftFunc (t, v) = (liftFunc t, liftFunc v)

Объяснение хорошее, и я понимаю, что forallздесь делает. Но мне интересно, есть ли конкретная причина, по которой это не поведение по умолчанию. Был ли когда-нибудь момент, когда это было бы невыгодно?

Изменить:Я имею в виду, есть ли причина, по которой фораллы не могут быть вставлены по умолчанию?

8
задан Community 23 May 2017 в 12:07
поделиться