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