int I2.F2(I1 i1, long counter, long initial_stack, long current_stack) { if (counter > 0) { return(i1.F1(this, counter - 1, initial_stack, (long)&counter)); } return(check((long)&counter, current_stack)); }