lambda calculus data type
free and bound variables