The structure of typed programming languages - Schmidt, David A. (The MIT Press, 1994)