A program transformation to remove free variables. An expression containing a free variable is replaced by a function applied to that variable. A closely related technique is closure conversion. See also Full laziness.