interface I { in void e(); out void f(); behaviour { bool b = false; bool g (bool ga, bool gb) { f; return ga || gb; } [true] on e: { b = ! b; bool c = g (b, b); b = g (c, c); if(c) { f; } } } } component argument2 { provides I i; behaviour { bool b = false; bool g (bool ga, bool gb) { i.f(); return ga || gb; } [true] on i.e(): { b = ! b; bool c = g (b, b); b = g (c, c); if(c) { i.f(); } } } }