trait ĠFoo Ġ{ ĊĠĠĠ Ġfun Ġfoo ( a : ĠDouble Ġ= Ġ 1 . 0 ): ĠDouble Ċ } Ċ Ċ class ĠFoo Impl Ġ: ĠFoo Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġfoo ( a : ĠDouble ): ĠDouble Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġa ĊĠĠĠ Ġ} Ċ } Ċ fun Ġbox (): ĠString Ġ Ġ{ ĊĠĠĠ Ġif Ġ( Foo Impl (). foo () Ġ!= Ġ 1 . 0 ) Ġreturn Ġ" fail " ĊĠĠĠ Ġif Ġ( Foo Impl (). foo ( 2 . 0 ) Ġ!= Ġ 2 . 0 ) Ġreturn Ġ" fail " ĊĠĠĠ Ġreturn Ġ" OK " Ċ }