Dica para inferência do tipo SML
Eu sou novo no SML e estou tentando praticar na referência de tipo SML. Estou tentando deduzir os tipos abaixo:
a)fun add42 x =x+42
b)fun comp F G = let fun C x = G(F(x)) in C end
c)fun compA42 x = comp add42 x
d)val foo = compA42 add42
e)fun compCompA42 x = comp compA42 x
Eu acho que as soluções para os quatro primeiros são:
a)int->int
b)(a->b)->(b->c)->a->c
c)(int->a)->int->a
d)int->int
Mas estou um pouco confuso sobre o último. Existe alguma dica para deduzir o último tipo?
Muito obrigado.