interface ihello { in void hello(); in void cancel(); out void world(); behaviour { bool triggered = false; [!triggered] on hello: triggered = true; [triggered] on hello: illegal; on cancel: triggered = false; [triggered] on inevitable: { world; triggered = false; } } } component hello_external { provides ihello h; requires external ihello w; behaviour { bool triggered = false; [!triggered] on h.hello(): { w.hello(); triggered = true; } on h.cancel(): { w.cancel(); triggered = false; } [triggered] on w.world(): { h.world(); triggered = false; } } }