Возможно, это технически способ, так как CLR поддерживает проверки типа времени выполнения. Но вы не должны хотите сделать это. Это противоречит философии полиморфизма семьи ML - если вам нужна такая проверка, это указывает на то, что ваш алгоритм и/или структура структуры данных не очень хорошо подходят для языка программирования. (Исключение - если вам нужно взаимодействовать с существующими библиотеками .net, которые не следуют этой философии).
Более конкретно, параметрический полиморфизм основан на концепции всякий раз, когда у вас есть что-то, что вы еще не знаете, какой тип это, это потому, что вы хотите обрабатывать все одинаково и не заглядывать в данные, чтобы увидеть что это. Несоблюдение этого правила сводится к работе с зерном языка программирования и сделает ваш код более сложным для понимания, поскольку типы не будут иметь обычной информации о том, как ваши функции обрабатывают данные.
Если вы хотите создать код, который вы можете передать либо кортежем, либо одним номером, и чтобы этот код знал о различии, вы должны указать явный тип типа, чтобы вы могли рассказать о возможностях отдельно используя сопоставление с образцом, и он будет явным в типах функций, которые они предоставляют вызывающему абоненту с таким выбором.