Types in logic programming - Pfenning, Frank (Logic programming, 1992)