// p.e r.e r.a r.return p.a p.return // p.f r.e r.a r.return r.f r.b r.return p.a p.b p.return interface iq { in void e(); out void a(); in void f(); out void b(); behaviour { on e: { a; } on f: { a; b; } } } interface ir { in void e(); out void a(); in void f(); out void b(); behaviour { bool s = false; on e: { s = !s; a; } on f: { s = !s; //a; // q full b; } } } component q { provides iq p; requires ir r; behaviour { on p.e(): { r.e(); } on r.a(): { p.a(); } on p.f(): { r.e(); r.f(); } on r.b(): { //p.a(); //q full p.b(); } } }