В этой статье установлено, что вывод типа (называемый "типизируемость" в документе) в System F неразрешим. То, что я никогда не слышал, упоминается в другом месте, является вторым результатом статьи, а именно, что "проверка типов" в F также неразрешима. Здесь вопрос "проверка типа" означает: заданный термин t
, введите t
и среду ввода A
, является ли решение A ⊢ t : T
выводимым? Тот факт, что этот вопрос неразрешимый (и что он эквивалентен вопросу о типизированности) удивляет меня, потому что кажется интуитивно похожим, что это должен быть более простой вопрос для ответа.
Но в любом случае, учитывая, что Haskell основан на System F (или F-omega, even), результат проверки типа может показаться, что существует термин Haskell t
и тип t
такой, что компилятор не сможет решить, действителен ли t :: T
. Если это так, мне любопытно, что такое термин и тип... если это не так, то что я недопонимаю?
Предположительно осмыслить статью приведет к конструктивному ответу, но я немного из глубины:)