Dada uma função genérica, podemos executá-la de duas formas. A primeira é somente passando os argumentos, e deixando o compilador identificar o type parameter correspondente.
A segunda forma é chamada instantiation, e acontece quando, ao chamar uma função genérica, você provê o type parameter esperado para aquela execução, e o compilador garante que os parâmetros passados o satisfaçam.
// Type parameter implícito
MinhaFunc(1, 2)
// Instantiation
MinhaFunc[string]("1", "2")
Para mais informações sobre Instantiation, veja um artigo clicando aqui