interface ĠSome Ċ Ċ object ĠO 1 Ġ: ĠSome Ċ Ċ object ĠO 2 Ġ: ĠSome Ċ Ċ enum Ġclass ĠSome Enum ( val Ġx : ĠSome ) Ġ{ ĊĠĠĠ ĠFIRST ( O 1 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck ( y : ĠSome ): ĠBoolean Ġ= Ġtrue ĊĠĠĠ Ġ}, ĊĠĠĠ ĠSE COND ( O 2 ) Ġ Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġcheck ( y : ĠSome ): ĠBoolean Ġ= Ġy Ġ== ĠO 2 ĊĠĠĠ Ġ}; ĊĊĠĠĠ Ġabstract Ġfun Ġcheck ( y : ĠSome ): ĠBoolean Ċ }