// ĠWITH _ STD LIB Ċ // ĠWORK S _ WHEN _ VALUE _ CLASS Ċ // ĠLANGUAGE : Ġ+ Value Classes , Ġ+ Generic Inline Class Parameter Ċ Ċ OPTIONAL _ JVM _ INLINE _ AN NOT ATION Ċ value Ġclass ĠUInt < T : ĠInt >( private Ġval Ġu : ĠT ) Ġ{ ĊĠĠĠ Ġfun Ġas Result () Ġ= Ġu Ċ } Ċ Ċ fun Ġ< T : ĠInt > Ġtest ( x 1 : ĠUInt < T > ?, Ġx 2 : ĠUInt < T > ?, Ġy : ĠUInt < T >, Ġz : ĠUInt < T >? ): ĠInt Ġ{ ĊĠĠĠ Ġval Ġa Ġ= Ġx 1 Ġ?: Ġy ĊĠĠĠ Ġval Ġb Ġ= Ġx 1 Ġ?: Ġz !! ĊĠĠĠ Ġval Ġc Ġ= Ġx 1 Ġ?: Ġx 2 Ġ?: Ġy ĊĠĠĠ Ġreturn Ġa . as Result () Ġ+ Ġb . as Result () Ġ+ Ġc . as Result () Ċ } Ċ Ċ fun Ġbox (): ĠString Ġ{ ĊĠĠĠ Ġval Ġu 1 Ġ= ĠUInt ( 1 0 ) ĊĠĠĠ Ġval Ġu 2 Ġ= ĠUInt ( 2 0 ) ĊĠĠĠ Ġval Ġr Ġ= Ġtest ( null , Ġnull , Ġu 1 , Ġu 2 ) ĊĠĠĠ Ġreturn Ġif Ġ( r Ġ!= Ġ 4 0 ) Ġ" fail : Ġ$ r " Ġelse Ġ" OK " Ċ } Ċ