Theoretical aspects of object-oriented programming types, semantics, and language design - Gunter, Carl A.; Mitchell, John C. (MIT Press, 1994)