Qualified types theory and practice - Jones, Mark P. (Oxford Univ. Computing Lab. Programming Research Group, 1992)