tapl, short stand for Types and Programming Languages.
make all
make bot target=test
- 1 Introduction 1
- 2 Mathematical Preliminaries 15
- 3 Untyped Arithmetic Expressions 23 (arith)
- 4 An ML Implementation of Arithmetic Expressions 45 (arith)
- 5 The Untyped Lambda-Calculus 51 (fulluntyped)
- 6 Nameless Representation of Terms 75 (fulluntyped)
- 7 An ML Implementation of the Lambda-Calculus 83 (untyped) and fulluntyped
- 8 Typed Arithmetic Expressions 91 (tyarith)
- 9 Simply Typed Lambda-Calculus 99 (fullsimple)
- 10 An ML Implementation of Simple Types 113 (simplebool)
- 11 Simple Extensions 117 (fullsimple) and letexercise
- 12 Normalization 149
- 13 References 153 (fullref)
- 14 Exceptions 171 (fullerror)
- 15 Subtyping 181 (fullsub) and rcdsubbot
- 16 Metatheory of Subtyping 209 (rcdsubbot) and bot
- 17 An ML Implementation of Subtyping 221
- 18 Case Study: Imperative Objects 225 (fullref)
- 19 Case Study: Featherweight Java 247
- 22 Type Reconstruction 317 (recon) and fullrecon and reconbase
- 23 Universal Types 339 (fullpoly) and fullomega
- 24 Existential Types 363 (fullpoly)
- 25 An ML Implementation of System F 381
- 26 Bounded Quantification 389 (fullfsub) and fullfomsub
- 27 Case Study: Imperative Objects, Redux 411 (fullfsub)
- 28 Metatheory of Bounded Quantification 417 (fullfsub) and purefsub