public static IValueProvider <T[], TSource> TakeWhile <T, TSource>(this IValueProvider <T[], TSource> valueProvider, Action <T> assertion) { return(valueProvider.Taken(Assertion.FromDelegate(assertion))); }