package Ġarrow . opt ics . std Ċ Ċ import Ġarrow . opt ics . test . generators . char Ċ import Ġarrow . core . test . Unit Spec Ċ import Ġarrow . opt ics . Iso Ċ import Ġarrow . opt ics . string ToList Ċ import Ġarrow . opt ics . test . l aws . Iso L aws Ċ import Ġarrow . type classes . Eq Ċ import Ġarrow . type classes . Mon oid Ċ import Ġio . kot lint est . properties . Gen Ċ Ċ class ĠString Test Ġ: ĠUnit Spec () Ġ{ ĊĊĠ Ġinit Ġ{ ĊĊĠĠĠ Ġtest L aws ( ĊĠĠĠĠĠ ĠI so L aws . l aws ( ĊĠĠĠĠĠĠĠ Ġiso Ġ= ĠI so . string ToList (), ĊĠĠĠĠĠĠĠ Ġa Gen Ġ= ĠGen . string (), ĊĠĠĠĠĠĠĠ Ġb Gen Ġ= ĠGen . list ( Gen . char ()), ĊĠĠĠĠĠĠĠ Ġfunc Gen Ġ= ĠGen . list ( Gen . char ()). map Ġ{ Ġlist Ġ-> Ġ{ Ġchars : ĠList < Char > Ġ-> Ġlist Ġ+ Ġchars Ġ} Ġ}, ĊĠĠĠĠĠĠĠ ĠE QA Ġ= ĠEq . any (), ĊĠĠĠĠĠĠĠ ĠE QB Ġ= ĠEq . any (), ĊĠĠĠĠĠĠĠ Ġb Mon oid Ġ= Ġobject Ġ: ĠMon oid < List < Char >> Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠList < Char >. combine ( b : ĠList < Char >): ĠList < Char > Ġ= Ġthis Ġ+ Ġb ĊĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġempty (): ĠList < Char > Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠ Ġ} Ċ } Ċ