When optimized correctly, the intermediate int32 objects are not constructed.
In unoptimized code, sequences of operations like
(sys:int32+ (sys:int32- a b) (sys:int32- c d))
will generate intermediate int32 objects for the results of the subtraction, but the compiler can optimize these away because it knows that the function int32+ consumes int32 objects.
Note: the INT32 API is not designed to optimize
objects passed as arguments.