The Structure of Typed Programming Languages door David A. Schmidt