String fMethodName = functions.getFnNamePrefix(mf.getName()) + "f" + mf.getArity() + "L";
MethodInvocation fn = new MethodInvocation.Instance (functionField, fMethodName, args, argTypes, JavaTypeNames.RTVALUE, MethodInvocation.InvocationType.VIRTUAL);
MethodInvocation setResult = new MethodInvocation.Instance (null, "setResult", fn, JavaTypeNames.RTVALUE, JavaTypeName.VOID, MethodInvocation.InvocationType.VIRTUAL);
then.addStatement(new ExpressionStatement(setResult));
reduce.addStatement(new IfThenElseStatement(condition, then));
reduce.addStatement(new ReturnStatement(resultField));
return reduce;
}