public static bool All <TSource>(this ImmutableStack <TSource> source, Func <TSource, int, bool> predicate) => ValueEnumerableExtensions.All <ValueWrapper <TSource>, ValueWrapper <TSource> .Enumerator, TSource>(new ValueWrapper <TSource>(source), predicate);
public static bool All <TSource>(this ImmutableQueue <TSource> source, PredicateAt <TSource> predicate) => ValueEnumerableExtensions.All <ValueWrapper <TSource>, ValueWrapper <TSource> .Enumerator, TSource>(new ValueWrapper <TSource>(source), predicate);
public static bool All <TSource, TPredicate>(this ImmutableStack <TSource> source, TPredicate predicate = default) where TPredicate : struct, IFunction <TSource, bool> => ValueEnumerableExtensions.All <ValueWrapper <TSource>, ValueWrapper <TSource> .Enumerator, TSource, TPredicate>(new ValueWrapper <TSource>(source), predicate);
public static bool All <TEnumerable, TEnumerator, TSource, TPredicate>(this TEnumerable source, TPredicate predicate = default) where TEnumerable : IValueReadOnlyCollection <TSource, TEnumerator> where TEnumerator : struct, IEnumerator <TSource> where TPredicate : struct, IFunction <TSource, bool> => source.Count is 0 || ValueEnumerableExtensions.All <TEnumerable, TEnumerator, TSource, TPredicate>(source, predicate);