Skip to content

Latest commit

 

History

History
52 lines (39 loc) · 1.54 KB

toc.md

File metadata and controls

52 lines (39 loc) · 1.54 KB

TOC

  1. Introduction
  2. Mathematical Preliminaries

I Untyped Systems

  1. Untyped Arithmetic Expressions (arith)
  2. An ML Implementation of Arithmetic Expressions (arith)
  3. The Untyped Lambda-Calculus (fulluntyped)
  4. Nameless Representation of Terms (fulluntyped)
  5. An ML Implementation of the Lambda-Calculus (fulluntyped)

II Simple Types

  1. Typed Arithmetic Expressions (tyarith)
  2. Simply Typed Lambda-Calculus (fullsimple)
  3. An ML Implementation of Simple Types (simplebool)
  4. Simple Extensions (fullsimple)
  5. Normalization
  6. References (fullref)
  7. Exceptions (fullerror)

III Subtyping

  1. Subtyping (rcdsub, fullsub)
  2. Metatheory of Subtyping (rcdsub, joinsub, bot)
  3. An ML Implementation of Subtyping
  4. Case Study: Imperative Objects (fullref)
  5. Case Study: Featherweight Java

IV Recursive Types

  1. Recursive Types (fullequirec, fullisorec)
  2. Metatheory of Recursive Types equirec

V Polymorphism

  1. Type Reconstruction (recon, fullrecon)
  2. Universal Types (fullpoly, fullomega)
  3. Existential Types (fullpoly)
  4. An ML Implementation of System F
  5. Bounded Quantification (fullfsub, fullfomsub)
  6. Case Study: Imperative Objects, Redux (fullfsubref)
  7. Metatheory of Bounded Quantification (purefsub, fullfsub)

VI Higher-Order Systems

  1. Type Operators and Kinding (fullomega)
  2. Higher-Order Polymorphism (fullomega)
  3. Higher-Order Subtyping (fomsub, fullfomsub)
  4. Case Study: Purely Functional Objects (fullupdate)