public static Option <TKey> First <TKey, TValue>(this SortedDictionary <TKey, TValue> .KeyCollection source)
 => ValueReadOnlyCollectionExtensions.First <ValueWrapper <TKey, TValue>, SortedDictionary <TKey, TValue> .KeyCollection.Enumerator, TKey>(new ValueWrapper <TKey, TValue>(source));
 public static Option <KeyValuePair <TKey, TValue> > First <TKey, TValue>(this Dictionary <TKey, TValue> source)
     where TKey : notnull
 => ValueReadOnlyCollectionExtensions.First <ValueWrapper <TKey, TValue>, Dictionary <TKey, TValue> .Enumerator, KeyValuePair <TKey, TValue> >(new ValueWrapper <TKey, TValue>(source));
 public static Option <TSource> First <TSource>(this ImmutableHashSet <TSource> source)
 => ValueReadOnlyCollectionExtensions.First <ValueWrapper <TSource>, ImmutableHashSet <TSource> .Enumerator, TSource>(new ValueWrapper <TSource>(source));