A program transformation used in {functional programming} to implement {full laziness}. E.g. the function f x = x + sqrt 4 can Be expressed as f x = let t = sqrt 4 in x + t But note that t does not depend on the argument x so we can automatically transform this to t = sqrt 4 f x = x + t Making 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)