Another form of tupling transformation is used to avoid
repeated evaluation where a function generates several
identical calls to itself. By analysing the pattern of
recursion (see descent function) it is possible to arrange
for these identical calls to share results. E.g.