It appears we are creating an excessive amount of `val`s here.
For example, for a `Function3`, we are rendering something like this:

    val value2 = p.valueStack.pop().asInstanceOf[...] 
    val value1 = p.valueStack.pop().asInstanceOf[...] 
    val value0 = p.valueStack.pop().asInstanceOf[...] 
    val arg0 = value2
    val arg1 = value1
    val arg2 = value0
    <body>

It seems we can get rid of the intermediate `valueX` level of `val`s, no?