"Given a nonempty stream of `Comparable` values,
return the largest value in the stream."
see (`interface Comparable`,
`function min`,
`function largest`)
shared Absent|Value max<Value,Absent>(Iterable<Value,Absent> values)
given Value satisfies Comparable<Value>
given Absent satisfies Null {
value first=values.first;
if (exists first) {
variable value max=first;
for (val in values.rest) {
if (val>max) {
max=val;
}
}
return max;
}
else {
return first;
}
}