Text this: Types in logic programming / edited by Frank Pfenning.