When doing the following operation {"*":[25,null]}, it will return 125 when it should be null. Looking at the code, the problem is within the AddOperator, the defaultValue being passed to ReduceDoubleArgs is a 1, instead of 0. It can be fixed by either using 0 as the defaultValue, or accepting nullable doubles in the Func reducer.
Also, the divide and modular operations could have the same issue since they also default the value to 1.