Replaces all the called lambdas in
comp with a block.
This transform traverses
comp postorder, matches the following pattern, and
replaces the following computation containing a called lambda:
Call / \
(x -> z)(y)
with the following computation containing a block:
Block / \
let x=y in z
The functional computation
b and the argument
c are retained; the other
computations are replaced. This transformation is used to facilitate the merging
of TFF orchestration logic, in particular to remove unnecessary lambda
expressions and as a stepping stone for merging Blocks together.
comp: The computation building block in which to perform the replacements.
A new computation with the transformation applied or the original
TypeError: If types do not match.