Это тонко, но согласно спецификации.Вот старый ответ по электронной почте, который я выкопал, где кто-то задал похожий вопрос:
...
Во время игры есть также (тонкая) разница между "кортежами" (на языке F #)и «синтаксические кортежи» (в спецификации F #).
Разрешение приложения метода отличается при перегрузках.Если их нет, декомпозиция аргумента (т. Е. «Материал», указанный между (и) в вызове метода) в форму кортежа не происходит, поэтому компилятор счастлив и говорит «о, хорошо, ctor для MyClass принимает1 аргумент (кортеж), и я вижу 1 аргумент («кортеж» в вашем коде), поэтому я буду использовать это ".
Принимая во внимание, что когда у вас есть 2 перегрузки, правило, приведенное выше, больше не применяетсяи компилятор попытается разложить аргумент в форму кортежа (который в вашем случае разрешит что-то вроде: «О, хорошо, есть 1 аргумент, который является кортежем. Но подождите, у меня есть 2 перегрузки. И ваш список аргументов (один элемент (кортеж) не соответствует ни одному из списков аргументов, поэтому сообщение об ошибке "
По крайней мере, такова моя интерпретация F # спецификации , раздел 14.4.