It is well known that the performance of a program can often be improved by means of program transformation. Several program transformation techniques, eg. partial evaluation, work as follows: it is recognized that the original program often, when executed, enters states with common components. From these components alone it may be possible to do a lot of computations once and for all, which otherwise would have to be done again and again. The evaluation of the common components mentioned above may itself benefit from identifying common components and evaluating them separately once and for all. Even this evaluation process may possess common components, etc. . . – an arbitrarily high level of “nesting” can be achieved, at least in theory. The purpose of this paper is threefold: