Recentemente, iniciei meus estudos em teoria de tipos / sistemas de tipos e Lambda Calculus.
Eu já li sobre o Simple Typed Lambda Calculus no estilo Church and Curry. O último também é conhecido como sistema de atribuição de tipos (TA).
Estou pensando nas relações entre TA e Hindley-Milner (HM), o sistema em idiomas como ML e Haskell.
O livro Lambda-Calculus and Combinators: An Introduction (Hindley) diz que a AT é polimórfica (pag. 119). Esse é o mesmo senso de polimorfismo em sistemas como HM e System-F?
Diz-se que o AT possui a forte propriedade de normalização, portanto não está completo. Os idiomas que usam o sistema HM estão completos, Haskell por exemplo. Portanto, deve ser o caso do sistema HM permitir termos como o loop infinitopara receber um tipo. Está correto ou estou faltando alguma coisa?
De qualquer forma, gostaria de saber a relação entre TA e HM.