interface ĠF ir Type Scope Ċ Ċ interface ĠAbstract F ir Based Symbol < E > Ġwhere ĠE Ġ: ĠF ir Symbol Owner < E >, ĠE Ġ: ĠF ir Declaration Ġ{ ĊĠĠĠ Ġval Ġfir : ĠE Ċ } Ċ Ċ interface ĠF ir Callable Symbol < D Ġ: ĠF ir Callable Declaration < D >> Ġ: ĠAbstract F ir Based Symbol < D > Ċ Ċ interface ĠF ir Element Ċ interface ĠF ir Symbol Owner < E > Ġ: ĠF ir Element Ġwhere ĠE Ġ: ĠF ir Symbol Owner < E >, ĠE Ġ: ĠF ir Declaration Ġ{ ĊĠĠĠ Ġval Ġsymbol : Ġ ĠAbstract F ir Based Symbol < E > Ċ } Ċ interface ĠF ir Declaration Ġ: ĠF ir Element Ċ interface ĠF ir Callable Declaration < F Ġ: ĠF ir Callable Declaration < F >> Ġ: ĠF ir Declaration , ĠF ir Symbol Owner < F > Ċ interface ĠF ir Callable Member Declaration < F Ġ: ĠF ir Callable Member Declaration < F >> Ġ: ĠF ir Callable Declaration < F > Ċ Ċ private Ġinline Ġfun Ġ< re ified ĠS Ġ: ĠF ir Callable Symbol <* >> Ġcompute Base Symbols ( ĊĠĠĠ Ġsymbol : ĠS , ĊĠĠĠ Ġbased Symbol : ĠS , ĊĠĠĠ Ġdirect Over ridden : ĠF ir Type Scope .( S ) Ġ-> ĠList < S > Ċ ) Ġ{} Ċ Ċ fun ĠF ir Callable Symbol <* >. dispatch Receiver Class OrNull (): ĠBoolean ? Ġ= Ġtrue Ċ Ċ private Ġinline Ġfun Ġ< re ified ĠD Ġ: ĠF ir Callable Member Declaration < D >, Ġre ified ĠS Ġ: ĠF ir Callable Symbol < D >> Ġcreate Fake Over ridden IfNeeded ( ĊĠĠĠ Ġoriginal Symbol : ĠF ir Callable Symbol <* >, ĊĠĠĠ Ġbased Symbol : ĠS , ĊĠĠĠ Ġcompute Direct Over ridden : ĠF ir Type Scope .( S ) Ġ-> ĠList < S >, ĊĠĠĠ Ġsome Condition : ĠBoolean Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( original Symbol Ġ! is ĠS ) Ġreturn ĊĠĠĠ Ġif Ġ( original Symbol . dispatch Receiver Class OrNull () Ġ== Ġtrue Ġ&& Ġsome Condition ) Ġreturn ĊĠĠĠ Ġcompute Base Symbols ( original Symbol , Ġbased Symbol , Ġcompute Direct Over ridden ) Ċ } Ċ