@ file : Suppress (" NOTH ING _ TO _ INLINE ") Ċ Ċ package Ġorg . t esser akt . disk ord in . util . enums Ċ Ċ import Ġarrow . type classes . Mon oid Ċ import Ġarrow . type classes . Sem ig roup Ċ import Ġorg . t esser akt . disk ord in . util . type class . Integral Ċ Ċ interface ĠVal ued Enum Sem ig roup < E , ĠI Ġ: ĠAny > Ġ: ĠSem ig roup < Val ued Enum < E , ĠI >> Ġwhere ĠE Ġ: ĠEnum < E >, ĠE Ġ: ĠI Val ued < E , ĠI > Ġ{ ĊĠĠĠ Ġoverride Ġfun ĠVal ued Enum < E , ĠI >. combine ( b : ĠVal ued Enum < E , ĠI >): ĠVal ued Enum < E , ĠI > Ġ= Ġthis Ġor Ġb Ċ } Ċ Ċ inline Ġfun Ġ< E , ĠI > ĠVal ued Enum . Companion . sem ig roup (): ĠSem ig roup < Val ued Enum < E , ĠI >> ĊĠĠĠĠĠĠĠ Ġwhere ĠE Ġ: ĠEnum < E >, ĠI Ġ: ĠAny , ĠE Ġ: ĠI Val ued < E , ĠI > Ġ= Ġobject Ġ: ĠVal ued Enum Sem ig roup < E , ĠI > Ġ{} Ċ Ċ interface ĠVal ued Enum Mon oid < E , ĠI Ġ: ĠAny > Ġ: ĠMon oid < Val ued Enum < E , ĠI >> Ġwhere ĠE Ġ: ĠEnum < E >, ĠE Ġ: ĠI Val ued < E , ĠI > Ċ Ċ inline Ġfun Ġ< E , ĠI > ĠVal ued Enum . Companion . mon oid ( integral : ĠIntegr al < I >): ĠMon oid < Val ued Enum < E , ĠI >> ĊĠĠĠĠĠĠĠ Ġwhere ĠE Ġ: ĠEnum < E >, ĠI Ġ: ĠAny , ĠE Ġ: ĠI Val ued < E , ĠI > Ġ= Ġintegral . run Ġ{ ĊĠĠĠ Ġobject Ġ: ĠVal ued Enum Mon oid < E , ĠI >, ĠSem ig roup < Val ued Enum < E , ĠI >> Ġby ĠVal ued Enum . sem ig roup () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġempty (): ĠVal ued Enum < E , ĠI > Ġ= Ġnone ( integral ) ĊĠĠĠ Ġ} Ċ }