The template code in PrimitiveDataFrameColumn.BinaryOperations.tt should really be improved. As part of this, also consider improving the binary operations behavior when types mismatch. For ex: At the moment, PrimitiveDataFrameColumn<int> + PrimitiveDataFrameColumn<float> return a PrimitiveDataFrameColumn<double>(as a DataFrameColumn). Should investigate if this behavior can be improved.