Существуют ли сигнатуры типов, которые Haskell не может проверить?

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

Но в любом случае, учитывая, что Haskell основан на Системе F (или даже F-omega), результат проверки типов, по-видимому, предполагает наличие термина Haskell t и type T , так что компилятор не сможет решить, действительно ли t :: T . Если это так, мне любопытно, что это за термин и тип ... если это не так, что я неправильно понимаю?

Предположительно, понимание статьи приведет к конструктивному ответу, но я немного из моей глубины :)

17
задан Tom Crockett 4 October 2011 в 07:42
поделиться