package Ġcom . cop per leaf . tre ll is . impl . math Ċ Ċ import Ġcom . cop per leaf . tre ll is . base . Binary Operation Spe k Ċ import Ġcom . cop per leaf . tre ll is . base . Spe k Ċ import Ġkotlin . jvm . Jvm Name Ċ Ċ class ĠPlus Spe k < Candidate , ĠOper and Ġ: ĠNumber >( ĊĠĠĠ Ġlhs : ĠSpe k < Candidate , ĠOper and >, ĊĠĠĠ Ġrhs : ĠSpe k < Candidate , ĠOper and > Ċ ) Ġ: ĠBinary Operation Spe k < Candidate , ĠOper and , ĠDouble >( ĊĠĠĠ Ġlhs , ĊĠĠĠ Ġrhs , ĊĠĠĠ Ġcb Ġ= Ġ{ Ġa , Ġb Ġ-> Ġa (). toDouble () Ġ+ Ġb (). toDouble () Ġ} Ċ ) Ċ Ċ infix Ġoperator Ġfun Ġ< Candidate > ĠSpe k < Candidate , ĠDouble >. plus ( ĊĠĠĠ Ġother : ĠSpe k < Candidate , ĠDouble > Ċ ): ĠSpe k < Candidate , ĠDouble > Ġ= ĠPlus Spe k ( this , Ġother ) Ċ Ċ @ Jvm Name (" unsafe Plus ") Ċ @ Suppress (" UN CHECK ED _ CAST ") Ċ infix Ġoperator Ġfun Ġ< Candidate > ĠSpe k < Candidate , Ġ* >. plus ( ĊĠĠĠ Ġother : ĠSpe k < Candidate , Ġ*> Ċ ): ĠSpe k < Candidate , ĠDouble > Ġ= ĠPlus Spe k ( this Ġas ĠSpe k < Candidate , ĠDouble >, Ġother Ġas ĠSpe k < Candidate , ĠDouble >) Ċ