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