A program transformation used in {functional programming} to implement {full laziness}.E.g. the functionf x = x + sqrt 4can be expressed asf x = let t = sqrt 4 in x + tbut note that t does not depend on the argument x so we can automatically transform this tot = sqrt 4 f x = x + tMaking t into a global constant which need only be evaluated at most once, rather than every time f is called.The general idea is to float each subexpression as far out (toward the top level) as possible to maximise sharing.(1997-07-09)