public static void Main()
Func<string, Func<string,string>, string> handler1 = (s, next) => {
Func<string, string> handler2 = (s) => {
Func<string, string> chain = ChainBuilder(handler1, handler2);
Console.WriteLine(chain(" hello"));
static Func<Func<string, Func<string, string>, string>, Func<string, string>, Func<string, string>> ChainBuilder = (f1, f2) => s => {