Definition e_let (def body:expr) :=
  (App (Lam body) def).Definition none : expr := Lam (Lam (Var 1)).Definition some : expr := Lam (Lam (Lam (App (Var 0) (Var 2)))).Definition out  : expr := Lam (Lam (App (App (Var 0) (Var 1)) (Lam (Var 0)))).

Lemma out_typ : Typ nil out (ALL tau:pred world, ty_lam tau (ty_lam (option tau) tau)).