package Ġcom . inst ac art . formula Ċ Ċ /** Ċ Ġ* ĠFormula Ġis Ġan Ġevent - driven Ġframework . ĠA Ġlistener Ġtype Ġdescribes Ġa Ġfunction Ġthat Ġaccepts Ċ Ġ* Ġevents Ġof Ġtype Ġ[ Event ]. ĠIt Ġis Ġequivalent Ġto Ġ[( Event ) Ġ-> ĠUnit ] Ġtype . ĠEvent Ġtype Ġdefines Ċ Ġ* Ġinformation Ġthat Ġneeds Ġto Ġbe Ġpassed Ġwhen Ġevent Ġhappens . ĠYou Ġcan Ġuse Ġ[ Unit ] Ġas Ġevent Ġtype Ċ Ġ* Ġif Ġthere Ġis Ġno Ġinformation Ġthat Ġneeds Ġto Ġbe Ġpassed . Ċ Ġ* Ċ Ġ* Ġ& nbsp ; Ċ Ġ* Ċ Ġ* ĠTo Ġcreate Ġ[ Listener ] Ġwithin Ġ[ Formula . evaluate ], Ġyou Ġshould Ġuse Ġ[ Formula Context . on Event ]: Ċ Ġ* Ġ``` Ċ Ġ* Ġval Ġlistener Ġ= Ġcontext . on Event < My Event > Ġ{ Ċ Ġ* ĠĠ Ġtransition () Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ġ& nbsp ; Ċ Ġ* Ċ Ġ* ĠTo Ġcreate Ġ[ Listener ] Ġoutside Ġof Ġ[ Formula ], Ġyou Ġcan Ġjust Ġinstantiate Ġthis Ġinterface : Ċ Ġ* Ġ``` Ċ Ġ* Ġval Ġlistener Ġ= ĠListener < My Event > Ġ{ Ġ} Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ fun Ġinterface ĠListener < Event > Ġ: Ġ( Event ) Ġ-> ĠUnit Ċ Ċ /** Ċ Ġ* ĠA Ġconvenience Ġextension Ġfunction Ġthat Ġallows Ġyou Ġdo Ġinvoke ĠListener < Unit > Ġwithout Ċ Ġ* Ġhaving Ġto Ġpass ĠUnit Ġvalue Ġyourself . Ċ Ġ*/ Ċ operator Ġfun ĠListener < Unit >. invoke () Ġ= Ġinvoke ( Unit )