package Ġscript Ċ Ċ abstract Ġclass ĠSystem Function ( val Ġname : ĠString ) Ġ: ĠFunction () Ġ{ ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > invoke Typed ( ĊĠĠĠĠĠĠĠ Ġruntime : ĠRuntime , ĊĠĠĠĠĠĠĠ Ġself : ĠObject , ĊĠĠĠĠĠĠĠ Ġcallback : Ġ( T ) Ġ-> ĠUnit ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( self Ġis ĠT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcallback ( self ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Calling Ġfunction Ġ$ name Ġon Ġwrong Ġobject ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊ Ċ }