struct { T = Fn(z: Fn(<>, , b), y: Fn(<>, , c)) -> Fn(<>, , c) { w = z; return Fn<>(h: a) -> c { w = y; return w(z(h)); }; }; } main;