Theoretical aspects of object-oriented programming : types, semantics and language design - Gunter, Carl A. (The MIT Press, 1994)