type lambda_exp = Var of string | Lambda of string * lambda_exp | Appl of lambda_exp * lambda_exp;; let longer s1 s2 = if ((String.length s1) > (String.length s2)) then s1 else s2;; let rec longest exp = match exp with Var s -> s | Lambda(s,exp1) -> longer s (longest exp1) | Appl(exp1,exp2) -> longer (longest exp1) (longest exp2);; let fresh exp = (longest exp)^"f";;