abstract Ġclass ĠA Ġ{ ĊĠĠĠ Ġabstract Ġfun Ġfoo (): ĠAny Ċ } Ċ Ċ trait ĠB Ġ{ ĊĠĠĠ Ġfun Ġfoo (): ĠString Ġ= Ġ" B " Ċ } Ċ Ċ trait ĠC Ġ: ĠA , ĠB Ċ Ċ class ĠD Ġ: ĠA (), ĠC Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġd Ġ= ĠD () ĊĠĠĠ Ġval Ġr Ġ= Ġd . foo () Ġ+ Ġ( d Ġ: ĠC ). foo () Ġ+ Ġ( d Ġ: ĠB ). foo () Ġ+ Ġ( d Ġ: ĠA ). foo () ĊĠĠĠ Ġreturn Ġif Ġ( r Ġ== Ġ" BBBB ") Ġ" OK " Ġelse Ġ" Fail : Ġ$ r " Ċ } Ċ