*<Null safety>*
double average
double get average { var average = 0; var remainder = 0; var count = 0; for (var value in this) { // Invariant: Sum of values so far = average * count + remainder. // (Unless overflow has occurred). count += 1; var delta = value - average + remainder; average += delta ~/ count; remainder = delta.remainder(count); } if (count == 0) throw StateError('No elements'); return average + remainder / count; }