t =
    | Var    of string     (* x *)
    | Lambda of string * t (* lambda x. x + x *)
    | App    of t * t