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