Существуют различные способы добавления дополнительных правил к выводу типов - биты логики, которые может применять человек, но которых компилятор (подчиняющийся спецификации языка) не делает.
Прежде чем вы предложите обновить язык, чтобы сделать вывод типов более гибким, я настоятельно рекомендую вам прочитать существующую спецификацию. Если вы можете понять, что достаточно легко, что вы все еще думаете, что стоит сделать это даже более сложным, опубликуйте запрос функции на Connect - но лично я думаю, что это уже достаточно сложно. Я бы сказал, что это намного лучше, чем в C # 2.0.
Однако, чтобы выдвинуть противоположное мнение - некоторые языки (особенно функциональные) имеют более мощные механизмы вывода типов. Здесь всегда есть плюсы и минусы - я считаю, что одно из преимуществ текущей системы логического вывода в C # заключается в том, что она всегда делает успехи или останавливается, например - В блоге Эрика Липперта есть больше информации по этому и ряду других типов вывода вопросов.