"Given a nonempty stream of [[Summable]] values, return the
sum of the values."
see (`function product`)
shared Value sum<Value>({Value+} values)
given Value satisfies Summable<Value> {
value it = values.iterator();
assert (!is Finished first = it.next());
variable value sum = first;
while (!is Finished val = it.next()) {
sum+=val;
}
return sum;
}