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 none_typ : Typ nil none (ALL tau:pred world, option tau).