in lib/src/scan.dart [16:27]
Stream<S> scan<S>(
S initialValue, FutureOr<S> Function(S soFar, T element) combine) {
var accumulated = initialValue;
return asyncMap((value) {
var result = combine(accumulated, value);
if (result is Future<S>) {
return result.then((r) => accumulated = r);
} else {
return accumulated = result;
}
});
}