package Ġarrow . ap . objects . ren zu Ċ Ċ import Ġarrow . core . None Ċ import Ġarrow . core . Option Ċ import Ġarrow . core . Some Ċ import Ġarrow . extension Ċ import Ġarrow . type classes . Sem ig roup Ċ Ċ @ extension Ċ interface ĠOption Sem ig roup Instance < A > Ġ: ĠSem ig roup < Option < A >> Ġ{ ĊĊĠ Ġfun ĠSG (): ĠSem ig roup < A > ĊĊĠ Ġoverride Ġfun ĠOption < A >. combine ( b : ĠOption < A >): ĠOption < A > Ġ= ĊĠĠĠ Ġwhen Ġ( this ) Ġ{ ĊĠĠĠĠĠ Ġis ĠSome < A > Ġ-> Ġwhen Ġ( b ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠSome < A > Ġ-> ĠSome ( SG (). run Ġ{ Ġt . combine ( b . t ) Ġ}) ĊĠĠĠĠĠĠĠ ĠNone Ġ-> Ġb ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ ĠNone Ġ-> Ġthis ĊĠĠĠ Ġ} Ċ } Ċ