data Ġclass ĠPoint ( val Ġx : ĠInt , Ġval Ġy : ĠInt ) Ġ{ Ċ ĉ override Ġfun ĠtoString (): ĠString Ġ{ Ċĉ ĉ return Ġ" ($ x , Ġ$ y )" Ċ ĉ } ĊĊ ĉ fun Ġup (): ĠPoint Ġ{ Ċĉ ĉ return ĠPoint ( x , Ġy Ġ+ Ġ 1 ) Ċ ĉ } ĊĊ ĉ fun Ġright (): ĠPoint Ġ{ Ċĉ ĉ return ĠPoint ( x Ġ+ Ġ 1 , Ġy ) Ċ ĉ } ĊĊ ĉ fun Ġdown (): ĠPoint Ġ{ Ċĉ ĉ return ĠPoint ( x , Ġy Ġ- Ġ 1 ) Ċ ĉ } ĊĊ ĉ fun Ġleft (): ĠPoint Ġ{ Ċĉ ĉ return ĠPoint ( x Ġ- Ġ 1 , Ġy ) Ċ ĉ } Ċ } Ċ