public static ReadOnlyListExtensions.SelectAtEnumerable <ValueWrapper <TSource>, TSource, TResult, TSelector> SelectAt <TSource, TResult, TSelector>( this ImmutableList <TSource> source, TSelector selector = default) where TSelector : struct, IFunction <TSource, int, TResult> => ReadOnlyListExtensions.SelectAt <ValueWrapper <TSource>, TSource, TResult, TSelector>(new ValueWrapper <TSource>(source), selector);