tryMerge method
Tries to merge the iterables, returning null if the outer iterable is
empty. Exceptions thrown by merge (including Error subclasses)
propagate to the caller.
Implementation
Iterable<T>? tryMerge([
Iterable<T> Function(Iterable<T>?, Iterable<T>?)? merge,
]) {
if (isEmpty) return null;
return reduce(merge ?? (a, b) => <T>[...a ?? [], ...b ?? []]);
}