*<Null safety>*
S? minBy <S, T>(Iterable<S> values, T orderBy(S), {int compare(T, T)})
S? minBy<S, T>(Iterable<S> values, T Function(S) orderBy, {int Function(T, T)? compare}) { compare ??= defaultCompare; S? minValue; T? minOrderBy; for (var element in values) { var elementOrderBy = orderBy(element); if (minOrderBy == null || compare(elementOrderBy, minOrderBy) < 0) { minValue = element; minOrderBy = elementOrderBy; } } return minValue; }