There is a bit of inconsistency here between the "pairwise" and the "kahan" approach in regards to the returned type. If you sum a range of floats, then "pairwise" will return a "float", but "kahan" will return a "double". :/

In particular, "pariwise" uses the signature `ElementType!R sum(R)(R r)`: If instead, it was `auto sum(R)(R r)`, they'd behave the same. Either that, or change Kahan to also use `ElementType!R sum(R)(R r)`. As is, it is a bit inconsistent.