История изменений
Исправление qnikst, (текущая версия) :
Я привёл пример использующий тот же модуль, где оказалось, что type checker вывел верный тип, причём он вывел ровно тот же тип, что и в припере у monk. Как такое может быть?
Самая мудрая мысль у оппонента была тут, что компилятор должен проверять контракт, но было странное следствие, что компилятор должен требовать от программиста написать контракт явно, в случае если тип функции (без контекста) полиморфный. В то время как тайпчеккер действительно проверяет контракт (в случае его предоставления) следствие ни очевидным, ни верным не является.
Исходная версия qnikst, :
Я привёл пример использующий тот же модуль, где оказалось, что type checker вывел верный тип, причём он вывел ровно тот же тип, что и monk. Как такое может быть?
Самая мудрая мысль у оппонента была тут, что компилятор должен проверять контракт, но было странное следствие, что компилятор должен требовать от программиста написать контракт явно, в случае если тип функции (без контекста) полиморфный. В то время как тайпчеккер действительно проверяет контракт (в случае его предоставления) следствие ни очевидным, ни верным не является.