Estoy tratando de aprender más sobre la verificación de tipos de todo el programa y los sistemas de inferencia de tipos que usan información de sitios de llamadas de función para calcular la información de tipo (además del enfoque estándar de usar el cuerpo de la función). Por ejemplo, un algoritmo de este tipo podría usar una llamada de función como foo(1)
para inferir que la función foo
toma argumentos enteros. Obviamente, esto complicaría mucho la inferencia y haría que el cheque no fuera modular.
De todos modos, no he tenido mucha suerte en encontrar ninguna investigación sobre este enfoque, probablemente porque no conozco la terminología correcta para describir de lo que estoy hablando. Cualquier puntero?