В документации GHC для расширения ScopedTypeVariables в обзоре говорится следующее:
Переменная типа области обозначает переменную типа, а не тип. (Это изменение от более раннего дизайна GHC).
Я знаю общую цель расширенного расширения переменных типа, но я не знаю последствий различий между значениями для переменных типа и для типов. Каково значение различия, с точки зрения пользователей языка?
В комментарии выше говорится о двух проектах, которые по-разному подходили к этому решению и делали разные компромиссы. Каков был альтернативный дизайн и как он сравнивается с тем, который в настоящее время реализован?