church-encoding

Dlaczego używamy fałd do kodowania typów danych jako funkcji?

A dokładniej, dlaczego używamy foldr do kodowania list i iteracji do kodowania liczb? Przepraszam za długi wstęp, ale napraw ... na bezpośrednie wykorzystanie rekurencyjnych algebraicznych typów danych? Czy ma to związek z algorytmem wnioskowania typu?