Recientemente comencé mis estudios en teoría de tipos / sistemas de tipos y cálculo Lambda.
Ya he leído sobre el cálculo simple de Lambda tipificado en estilo Church y Curry. El último también se conoce como sistema de asignación de tipo (TA).
Estoy pensando en las relaciones entre TA y Hindley-Milner (HM), el sistema en lenguajes como ML y Haskell.
El libro Lambda-Calculus and Combinators: An Introduction (Hindley) dice que la TA es polimórfica (pág. 119). ¿Es esa la misma sensación de polimorfismo en sistemas como HM y System-F?
Se dice que TA tiene una fuerte propiedad de normalización, por lo que no está completa. Los idiomas que utilizan el sistema HM están completos, por ejemplo, Haskell. Así debe ser el caso de que el sistema HM permita que términos como el bucle infinito reciban un tipo. ¿Es correcto o me falta algo?
De cualquier manera, me gustaría saber la relación entre TA y HM.