type term = | Var of int | App of term * term | Lam of term (* parses a string to a term *) val parse: string -> term (* parse many strings/terms, and returns the list of parsed terms + the list of free variables; variable 0 is not used *) val parse_many: string list -> term list * string list