types3
For most languages, types are not needed at run-time. Consider this type erasure function. erase(x) erase(λx : T1.t2) erase(t1 t2) = λx.erase(t2) = erase(t1) erase(t2) By careful design, we have: t → t′ =⇒ erase(t) → erase(t′). Proved by induction on evaluation derivations. erase(t)→m′ =⇒ ∃t′ |t →t′ ∧erase(t′)=m′ J. Carette (McMaster University) Types Fall …