"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> {
    variable value sum = values.first;
    for (val in values.rest) {
        sum+=val;
    }
    return sum;
}