delegate C C(C c); static void Main(string[] args) { C K = (a) => (b) => a; C S = (a) => (b) => (c) => a(c)(b(c)); C I = S(K)(K); C B = S(K(S))(K); }