package Ġmag net on . observable Ċ Ċ import Ġmag net on . Fast Set Ċ Ċ interface ĠRe action Dis poser Ġ{ ĊĠĠĠ Ġfun Ġdispose () Ċ } Ċ Ċ class ĠRe action ( private Ġval Ġf : Ġ() Ġ-> ĠUnit ) Ġ: ĠRe action Dis poser , ĠDer ivation Ġ{ ĊĠĠĠ Ġoverride Ġval Ġdependencies : ĠFast Set < Observable <* >> Ġ= ĠFast Set () ĊĠĠĠ Ġoverride Ġvar Ġlast Action Run Id : ĠInt Ġ= Ġ- 1 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Der ivation ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġf () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdispose () Ġ{ ĊĠĠĠĠĠĠĠ Ġdependencies . forEach Ġ{ Ġit . deriv ations . remove ( this ) Ġ} ĊĠĠĠĠĠĠĠ Ġdependencies . clear () ĊĠĠĠ Ġ} Ċ } Ċ