In some cases of reduction operations, it may be useful to use special intermediate representations for speed and accuracy. A typical example is computing the sum of fixed-point numbers within the form of an integer accumulation.
We can customize Base.reduce_empty / Base.reduce_first. However, they also affect the final result type, and there seems not to be something like Base.reduce_result / Base.reduce_final.
Of course it’s possible to overload sum, reduce, etc, but I think that’s much more problematic than overloading Base.reduce_empty etc.
Any thoughts?