class ĠA ( val Ġn : ĠInt ) Ċ Ċ fun Ġtest () Ġ{ ĊĠĠĠ Ġ< selection > fun Ġfoo < T : ĠA >( t : ĠT ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠA . a ( n : ĠInt ): ĠInt Ġ= Ġthis . n Ġ+ Ġn ĊĠĠĠĠĠĠĠ Ġfun ĠA . b ( n : ĠInt ): ĠInt Ġ= Ġthis . n Ġ- Ġn ĊĊĠĠĠĠĠĠĠ Ġreturn Ġt . n Ġ+ ĠA ( 1 ). a ( 2 ) Ġ- ĠA ( 2 ). b ( 1 ) ĊĠĠĠ Ġ}</ selection > ĊĊĠĠĠ Ġfun Ġfoo < U : ĠA >( u : ĠU ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠA . x ( m : ĠInt ): ĠInt Ġ= Ġn Ġ+ Ġm ĊĠĠĠĠĠĠĠ Ġfun ĠA . y ( n : ĠInt ): ĠInt Ġ= Ġthis . n Ġ- Ġn ĊĊĠĠĠĠĠĠĠ Ġreturn Ġu . n Ġ+ ĠA ( 1 ). x ( 2 ) Ġ- ĠA ( 2 ). y ( 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfoo < V : ĠA >( v : ĠV ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠA . a ( n : ĠInt ): ĠInt Ġ= Ġthis . n Ġ+ Ġn ĊĠĠĠĠĠĠĠ Ġfun ĠA . b ( n : ĠInt ): ĠInt Ġ= Ġthis . n Ġ+ Ġn ĊĊĠĠĠĠĠĠĠ Ġreturn Ġv . n Ġ+ ĠA ( 1 ). a ( 2 ) Ġ- ĠA ( 2 ). b ( 1 ) ĊĠĠĠ Ġ} Ċ }