A. Gill and G. Hutton, “The worker/wrapper transformation,” Journal of Functional Programming, vol. 19, pp. 227–251, March 2009.



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.


  author = {Andy Gill and Graham Hutton},
  title = {The worker/wrapper transformation},
  journal = {Journal of Functional Programming},
  publisher = {Cambridge University Press},
  volume = {19},
  number = {2},
  pages = {227--251},
  month = {March},
  year = {2009},