extension ITerableExtensions on Iterable { T? get firstOrNull { final lst = take(1).toList(); return lst.isEmpty ? null : lst.first; } }