interface ISiren { in void turnon(); in void turnoff(); behaviour c { enum States { Off, On }; States state = States.Off; [state.Off] { on turnon: { state = States.On; } on turnoff: illegal; } [state.On] { on turnoff: { state = States.Off; } on turnon: illegal; } } }