Concepts, techniques, and models of computer programming - Van-Roy, Peter (MIT Press, 2004)