In the theory of programming languages in computer science, deforestation (also known as fusion) is a program transformation to eliminate intermediate lists or tree structures that are created and then immediately consumed by a program.
The term "deforestation" was created by Philip Wadler, originally in his 1990 paper "Deforestation: transforming programs to eliminate trees". [1]
Deforestation is typically applied to programs in functional programming languages, more so non-strict programming languages such as Haskell. One algorithm for deforestation, named shortcut deforestation, [2] is implemented in the Glasgow Haskell Compiler. [3] Deforestation is closely related to escape analysis.