Подробное описание экзистенциальной квантификации Haskell

У меня есть общее представление о том, что такое экзистенциальная количественная оценка типов и где ее можно использовать. использоваться. Однако, судя по моему опыту, есть много предостережений, которые необходимо понять, чтобы эффективно использовать эту концепцию.

Вопрос: Есть ли какие-нибудь хорошие ресурсы, объясняющие, как экзистенциальная количественная оценка реализована в GHC? Т.е.

  • Как работает унификация над экзистенциальными типами - что унифицируемо, а что нет?
  • В каком порядке выполняются последующие операции над типами?

Моя цель - лучше понять сообщения об ошибках, которые GHC выдает мне. В сообщениях обычно говорится что-то вроде «этот тип с использованием forall и этот другой тип не совпадают» , однако они не объясняют, почему это так.

20
задан julkiewicz 9 April 2013 в 18:19
поделиться