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