List<S> mapIndexed<S>(S Function(int, T) func) => toList() .asMap() .map((index, value) => MapEntry(index, func(index, value))) .values .toList();