The worker/wrapper transformation

Andy Gill and Graham Hutton, Journal of Functional Programming, Mar 2009

AbstractThe worker/wrapper transformation is a technique for changing the type of a computation, usually with the aim of improving its performance. It has been used by compiler writers for many years, but the technique is little-known in the wider functional programming community, and has never been described precisely. In this article we explain, formalise, and explore the generality of the worker/wrapper transformation. We also provide a systematic recipe for its use as an equational reasoning technique for improving the performance of programs, and illustrate the power of this recipe using a range of examples.
 
ResourcespdfExtended Version (pdf)www.workerwrapper.com
 
BibTeX
@article{WorkerWrapper08,
  author = {Andy Gill and Graham Hutton},
  title = {The worker/wrapper transformation},
  abstract = {The worker/wrapper transformation is a technique for changing the type of a computation, usually with the aim of improving its performance. It has been used by compiler writers for many years, but the technique is little-known in the wider functional programming community, and has never been described precisely. In this article we explain, formalise, and explore the generality of the worker/wrapper transformation. We also provide a systematic recipe for its use as an equational reasoning technique for improving the performance of programs, and illustrate the power of this recipe using a range of examples.},
  journal = {Journal of Functional Programming},
  publisher = {Cambridge University Press},
  volume = {19},
  number = {2},
  pages = {227--251},
  month = {March},
  year = {2009}
}