Type theory and functional programming - Thompson, Simon G. (International computer science series, 1991)