data Ġclass ĠMy Date ( val Ġyear : ĠInt , Ġval Ġmonth : ĠInt , Ġval Ġday OfMonth : ĠInt ) Ġ: ĠComparable < My Date > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcompare To ( other : ĠMy Date ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcheck : ĠInt Ġ= Ġyear Ġ- Ġother . year ĊĊĠĠĠĠĠĠĠ Ġif Ġ( check Ġ!= Ġ 0 ) Ġreturn Ġcheck ĊĊĠĠĠĠĠĠĠ Ġcheck Ġ= Ġmonth Ġ- Ġother . month ĊĊĠĠĠĠĠĠĠ Ġif Ġ( check Ġ!= Ġ 0 ) Ġreturn Ġcheck ĊĊĠĠĠĠĠĠĠ Ġreturn Ġday OfMonth Ġ- Ġother . day OfMonth ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun Ġtest ( date 1 : ĠMy Date , Ġdate 2 : ĠMy Date ) Ġ{ ĊĠĠĠ Ġ// Ġthis Ġcode Ġshould Ġcompile : ĊĠĠĠ Ġprintln ( date 1 Ġ< Ġdate 2 ) Ċ } Ċ