interface icomplete { in void e(); out void a(); behaviour { on e: a; } } component complete { provides icomplete p; requires icomplete r; behaviour { on p.e(): { r.e(); } on r.a(): {p.a();} } }