// ĠFIR _ IGNORE Ċ interface ĠSome Ċ Ċ object ĠO 1 Ġ: ĠSome Ċ Ċ object ĠO 2 Ġ: ĠSome Ċ Ċ enum Ġclass ĠSome Enum ( val Ġx : ĠSome ) Ġ{ Ċ // ĠĠĠĠĠĠ Ġconstructor ĠSome Enum ( Some ) Ċ // ĠĠĠĠĠĠ ĠâĶĤ object ĠO 1 : ĠSome Ċ // ĠĠĠĠĠĠ ĠâĶĤ âĶĤ ĊĠĠĠ ĠFIRST ( O 1 ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBoolean Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠBoolean Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck ( y : ĠSome ): ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ}, Ċ // ĠĠĠĠĠĠĠ Ġconstructor ĠSome Enum ( Some ) Ċ // ĠĠĠĠĠĠĠ ĠâĶĤ object ĠO 2 : ĠSome Ċ // ĠĠĠĠĠĠĠ ĠâĶĤ âĶĤ ĊĠĠĠ ĠSE COND ( O 2 ) Ġ Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBoolean Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠSome Enum . SECOND . check . y : ĠSome Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ Ġfun Ġ( Any ). equals ( Any ?): ĠBoolean Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠâĶĤ Ġ Ġobject ĠO 2 : ĠSome Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠâĶĤ ĠâĶĤ ĠâĶĤ Ġ ĠâĶĤ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck ( y : ĠSome ): ĠBoolean Ġ= Ġy Ġ== ĠO 2 ĊĠĠĠ Ġ}; ĊĊĠĠĠ Ġabstract Ġfun Ġcheck ( y : ĠSome ): ĠBoolean Ċ } Ċ