uses System, System.Collections.Generic; procedure p(a:IEnumerable; b: Func>; c: Func>); begin writeln(a.GetType()); writeln(b.GetType()); writeln(c.GetType()); end; begin var a := new List; p(a, x -> x.Split(), x -> x.Split()); end.