sclass FG0 extends F0 { F1 f; F0 g; *() {} *(F1 *f, F0 *g) {} O get() { ret f.get(g.get()); } } static F0 fg0(fO f, fO g) { ret FG0(f1(f), f0(g)); }