[The] structure of typed programming languages - Schmidt, Klaus-Dieter (Foundations of computing series, 1994)