using System; class Program { static void Foo (Action a) { a ("action"); } static T Foo (Func f) { return f ("function"); } static string Bar () { return Foo (str => str.ToLower ()); } public static int Main () { var str = Foo (s => s); Console.WriteLine (str); if (str != "function") return 1; Foo (s => Console.WriteLine (s)); return 0; } }