public R Invoke <R>(IEnumerableFunc <R> func) => func.Do(value);
public static R Invoke <R>(this IEnumerable value, IEnumerableFunc <R> func) { IWrap wrap = CreateWrap((dynamic)value); return(wrap.Invoke(func)); }