interface I { in void e(); out void a(); behaviour { on e: { a; a; a; a; } } } component recursion3 { provides I i; behaviour { subint counter_t {0..2}; void g(counter_t counter) { f(counter); f(counter); } void f(counter_t counter) { if(counter < 2) { i.a(); f(counter + 1); } } on i.e(): { g(0); } } }