Estou tentando aprender mais sobre a verificação de tipo de programa inteiro e sistemas de inferências de tipo que usam informações de sites de chamada de função para calcular informações de tipo (além da abordagem padrão do uso do corpo da função). Por exemplo, esse algoritmo pode usar uma chamada de função como foo(1)
para inferir que a função foo
aceita argumentos inteiros. Obviamente, isso complicaria bastante a inferência e tornaria a verificação não modular.
De qualquer forma, não tive muita sorte em encontrar nenhuma pesquisa sobre essa abordagem, provavelmente porque não conheço a terminologia correta para descrever o que estou falando. Alguma dica?