# 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.