J. Launchbury, A. Gill, J. Hughes, S. Marlow, S. Peyton Jones, and P. Wadler, “Avoiding unnecessary updates,” in Glasgow Workshop on Functional Programming, Workshops in Computing, pp. 144–153, Springer-Verlag, 1992.


Graph reduction underlies most implementations of lazy functional languages, allowing separate computations to share results when sub-terms are evaluated. Once a term is evaluated, the node of the graph representing the computation is updated with the value of the term. However, in many cases, no other computation requires this value, so the update is unnecessary. In this paper we take some steps towards an analysis for determining when these updates may be omitted.


  author = {John Launchbury and Andrew Gill and John Hughes and Simon Marlow and Simon {Peyton Jones} and Philip Wadler},
  title = {Avoiding Unnecessary Updates},
  booktitle = {Glasgow Workshop on Functional Programming, Workshops in Computing},
  pages = {144-153},
  year = {1992},
  location = {Ayr, Scotland},
  publisher = {Springer-Verlag},