package Ġhe li os . opt ics Ċ Ċ import Ġarrow . core . None Ċ import Ġarrow . core . Option Ċ import Ġarrow . core . extensions . option . eq . eq Ċ import Ġhe li os . arrow . Unit Spec Ċ import Ġhe li os . arrow . generators . function A To B Ċ import Ġhe li os . arrow . generators . option Ċ import Ġhe li os . arrow . l aws . Lens L aws Ċ import Ġhe li os . arrow . l aws . Optional L aws Ċ import Ġhe li os . arrow . l aws . Traversal L aws Ċ import Ġarrow . type classes . Eq Ċ import Ġarrow . type classes . Mon oid Ċ import Ġhe li os . core . Js Array Ċ import Ġhe li os . core . Js Object Ċ import Ġhe li os . core . Json Ċ import Ġhe li os . instances . js object . eq . eq Ċ import Ġhe li os . instances . json . eq . eq Ċ import Ġhe li os . opt ics . js array . each . each Ċ import Ġhe li os . opt ics . js array . index . index Ċ import Ġhe li os . opt ics . js object . at . at Ċ import Ġhe li os . opt ics . js object . each . each Ċ import Ġhe li os . opt ics . js object . index . index Ċ import Ġhe li os . test . generators . alpha Str Ċ import Ġhe li os . test . generators . js Array Ċ import Ġhe li os . test . generators . js Object Ċ import Ġhe li os . test . generators . json Ċ import Ġio . kot est . properties . Gen Ċ Ċ class ĠInstances Test Ġ: ĠUnit Spec () Ġ{ ĊĊĠ Ġinit Ġ{ ĊĊĠĠĠ Ġtest L aws ( ĊĠĠĠĠĠ ĠOptional L aws . l aws ( ĊĠĠĠĠĠĠĠ Ġoptional Gen Ġ= ĠGen . alpha Str (). map Ġ{ ĠJs Object . index (). index ( it ) Ġ}, ĊĠĠĠĠĠĠĠ Ġa Gen Ġ= ĠGen . js Object (), ĊĠĠĠĠĠĠĠ Ġb Gen Ġ= ĠGen . json (), ĊĠĠĠĠĠĠĠ Ġfunc Gen Ġ= ĠGen . function A To B ( Gen . json ()), ĊĠĠĠĠĠĠĠ ĠE QA Ġ= ĠEq . any (), ĊĠĠĠĠĠĠĠ ĠE Q Option B Ġ= ĠEq . any () ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġtest L aws ( ĊĠĠĠĠĠ ĠOptional L aws . l aws ( ĊĠĠĠĠĠĠĠ Ġoptional Ġ= ĠJs Array . index (). index ( 1 ), ĊĠĠĠĠĠĠĠ Ġa Gen Ġ= ĠGen . js Array (), ĊĠĠĠĠĠĠĠ Ġb Gen Ġ= ĠGen . json (), ĊĠĠĠĠĠĠĠ Ġfunc Gen Ġ= ĠGen . function A To B ( Gen . json ()), ĊĠĠĠĠĠĠĠ ĠE QA Ġ= ĠEq . any (), ĊĠĠĠĠĠĠĠ ĠE Q Option B Ġ= ĠEq . any () ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġtest L aws ( ĊĠĠĠĠĠ ĠTra versal L aws . l aws ( ĊĠĠĠĠĠĠĠ Ġtraversal Ġ= ĠJs Object . each (). each (), ĊĠĠĠĠĠĠĠ Ġa Gen Ġ= ĠGen . js Object (), ĊĠĠĠĠĠĠĠ Ġb Gen Ġ= ĠGen . json (), ĊĠĠĠĠĠĠĠ Ġfunc Gen Ġ= ĠGen . function A To B ( Gen . json ()), ĊĠĠĠĠĠĠĠ ĠE QA Ġ= ĠEq . any (), ĊĠĠĠĠĠĠĠ ĠE Q Option B Ġ= ĠEq . any (), ĊĠĠĠĠĠĠĠ ĠE Q List B Ġ= ĠEq . any () ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġtest L aws ( ĊĠĠĠĠĠ ĠTra versal L aws . l aws ( ĊĠĠĠĠĠĠĠ Ġtraversal Ġ= ĠJs Array . each (). each (), ĊĠĠĠĠĠĠĠ Ġa Gen Ġ= ĠGen . js Array (), ĊĠĠĠĠĠĠĠ Ġb Gen Ġ= ĠGen . json (), ĊĠĠĠĠĠĠĠ Ġfunc Gen Ġ= ĠGen . function A To B ( Gen . json ()), ĊĠĠĠĠĠĠĠ ĠE QA Ġ= ĠEq . any (), ĊĠĠĠĠĠĠĠ ĠE Q Option B Ġ= ĠEq . any (), ĊĠĠĠĠĠĠĠ ĠE Q List B Ġ= ĠEq . any () ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġtest L aws ( Lens L aws . l aws ( ĊĠĠĠĠĠ Ġlens Gen Ġ= ĠGen . alpha Str (). map Ġ{ ĠJs Object . at (). at ( it ) Ġ}, ĊĠĠĠĠĠ Ġa Gen Ġ= ĠGen . js Object (), ĊĠĠĠĠĠ Ġb Gen Ġ= ĠGen . option ( Gen . json ()), ĊĠĠĠĠĠ Ġfunc Gen Ġ= ĠGen . function A To B ( Gen . option ( Gen . json ())), ĊĠĠĠĠĠ ĠE QA Ġ= ĠJs Object . eq (), ĊĠĠĠĠĠ ĠE QB Ġ= ĠOption . eq ( Json . eq ()), ĊĠĠĠĠĠ ĠMB Ġ= Ġobject Ġ: ĠMon oid < Option < Json >> Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠOption < Json >. combine ( b : ĠOption < Json >) Ġ= Ġflat Map Ġ{ Ġa Ġ-> Ġb . map Ġ{ Ġa . merge ( it ) Ġ} Ġ} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġempty (): ĠOption < Json > Ġ= ĠNone ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ)) ĊĊĠ Ġ} Ċ }