package Ġorg . me ch d ancer . dependency Ċ Ċ import Ġkotlin . reflect . K Class Ċ import Ġkotlin . reflect . safe Cast Ċ Ċ /** Ċ Ġ* Ġ[ I Unique Component ] Ġis Ġa Ġtype Ġof Ġ[ Component ] Ġassociated Ġwith Ġunique Ġtype Ġ[ T ] Ċ Ġ* Ċ Ġ* Ġ[ I Unique Component ] s Ġwith Ġthe Ġsame Ġtype Ġcan Ġnot Ġco exist Ġin Ġthe Ġscope Ċ Ġ*/ Ċ interface ĠI Unique Component < T Ġ: ĠI Unique Component < T >> Ġ: ĠComponent Ġ{ ĊĠĠĠ Ġval Ġtype : ĠK Class < out ĠI Unique Component <* >> ĊĊĠĠĠ Ġfun Ġdefault Type () Ġ= Ġjava Class . kotlin . find Super GenericType Re cursively ( I Unique Component :: class ) ĊĊĠĠĠ Ġfun Ġdefault HashCode () Ġ= Ġtype . hashCode () ĊĊĠĠĠ Ġfun Ġdefault Equals ( other : ĠAny ?) Ġ= Ġthis Ġ=== Ġother Ġ|| Ġtype . safe Cast ( other ) Ġ!== Ġnull Ċ }