# System F and recursive types
In the simply-typed lambda calculus, we write types like σ
-> τ
. This looks like logical implication. We'll take
that resemblance seriously when we discuss the Curry-Howard
correspondence. In the meantime, note that types respect modus
ponens:
Expression Type Implication ---------------------------------- fn α -> β α ⊃ β arg α α ------ ------ -------- fn arg β βThe implication in the right-hand column is modus ponens, of course. System F is usually attributed to Girard, but was independently proposed around the same time by Reynolds. It enhances the simply-typed lambda calculus with quantification over types. In System F, you can say things like
Λ α (\x.x):(α -> α)
This says that the identity function maps arguments of type α to
results of type α, for any choice of α. So the Λ is
a universal quantifier over types.