It is straightforward to call a block such as the following
call { private _a = 0; _a = 1 }
However, the return value of such a block is not nil, but undefined. For example, executing the following
typeName call { private _a = 0; _a = 1 };
Produces an error at the typeName operator:
Error Generic error in expression
I'd like the return value of such a block be either nil or (probably more usefully) the assigned value at the end of the block. Each of the following statements produces no errors
typeName call { nil };
typeName call {};
typeName call { 1 }
The ideal would be that executing the following code
typeName call { private _a = 0; _a = 1 };
would produce the result of "SCALAR".
Note that the code
typeName call { private _a = 0 };
would produce the same result. It doesn't make any sense to create a private variable as the last statement of a block, but there is no harm in having the assigned value pass through to establish the return value of the code block.