A questão é a seguinte. Geralmente quando se tem um termo como , podemos eliminar o forall por aplicar este termo a um tipo, como exemplo ( Λ X . t ) [ t ] → t [ X : = T ] .
Agora, suponha que seja uma flecha e desejemos fornecer um argumento; então, precisamos aplicar esse termo ao tipo apropriado, para que ele possa receber esse argumento. É isso que estou perguntando se posso automatizar: É possível construir uma função usando dois termos e retornando um tipo tal que nos forneça o tipo necessário para ser substituído por em modo que possa aceitar o argumento ?f < Λ X . t > < r > X t t r
Alguns exemplos:
.