El uso de variables en las expresiones de tipo nos permite hablar de tipos desconocidos. Así un tipo como:
F(LIST(TYPEVAR::ALPHA),TYPEVAR::ALPHA)nos permite hablar de una función que recibe listas de objetos de un tipo desconocido
TYPEVAR::ALPHA
y retorna objetos de ese mismo tipo TYPEVAR::ALPHA
.
Una variable de tipo representa un objeto no declarado o no completamente declarado.
La Inferencia de Tipos es el problema de determinar el tipo de los nodos de uso
en el árbol sintáctico abstracto cuando no se conocen total o parcialmente
los tipos de los objetos en el programa fuente.