55.5.0+dev0-2025-04-28/1Diffing_with_keys(with_posA;!a@@A#pos@@#int@@@ !../../utils/diffing_with_keys.mli`}`}@@1Diffing_with_keysA@$data@@B@ `} `}@@ B@@@A@Y@@@@@`}}`}@@@@@@A@(with_pos@$list!a@B@@@@ 1Diffing_with_keys(with_pos@@@@@@@@@9a:a@@8C@@(mismatchB;!l@!r@$diff@@C$Name#pos@@a@@@°`dad@@_E@#got@@&string@@@Űndod@@mF@(expected@@@@@Ȱ{d|d@@zG@+types_match@@$bool@@@˰d d0@@H@@@dd1@@I@$Type#pos@@@@@ΰe2?e2G@@J@#got@@fC@Ѱe2He2O@@K@(expected@@kC@հe2Pe2\@@L@&reason @@pC@ٰe2]e2i@@M@@@e24e2j@@N@@@A@YYY@@@@@@@c @@@@D@A@&change!C;!l@!r@$diff@@C&Change"1Diffing_with_keys(mismatchD@D@D@@@@@@kk@@\@$Swap##pos$@@@@@@@@@@@@ll-@@]@%first%@@@@@ $l.%l<@@#^@$last&@@@@@#1l=2lI@@0_@@@5l6lK@@4`@$Move'$name(@@@@@&GmLYHmLe@@Fa@#got)@@U@@@)TmLfUmLn@@Sb@(expected*@@b@@@,amLobmL{@@`c@@@emLNfmL|@@dd@&Insert+#pos,@@x@@@/wn}xn}@@ve@&insert-@@D@2n}n}@@f@@@n}n}@@g@&Delete.#pos/@@@@@6oo@@h@&delete0@@D@9oo@@i@@@oo@@j@@@A@YYY@@@@@@@j @@@@[@A@&prefixn*Format_doc'printer1Diffing_with_keys&change!l@D@נ!r@D@ؠ$diff@D@@@@@@@@qq@@C@@ӱ&DefineD@!DF$leftE;@@@A@@@@@s s *@@@@'Diffing@@A@%rightE;@@@A@@@@@ @@@A@A@$diffE;@@@A@@@@@@@@C@A@%stateE;@@@A@@@@@@@@D@A@@$diffG;@@@A1Diffing_with_keys(mismatch!D$left@@@ !D%right@@@ !D$diff@@@ @@@ @@@@7u 2 48u 2 b@@@@6F@A@$leftH;@@.A1Diffing_with_keys(with_pos!D$left@@@ #@@@ %@@@@Rv c eSv c @@@@QG@A@%rightI;@@IA1Diffing_with_keys(with_pos!D%right@@@ 1@@@ 3@@@@mw  nw  @@@@lH@A@0composite_changeJ;@@dA1Diffing_with_keys&change!D$left@@@ ?!D%right@@@ @!D$diff@@@ A@@@ E@@@@z  z  @@@@I@A@%patchK;@@A1Diffing_with_keys&Define0composite_change@@@ Y@@@ [@@@@{  {  &@@@@J@A@&changeL;@@A'Diffing&change1Diffing_with_keys&Define$left@@@ l1Diffing_with_keys&Define%right@@@ m$unit@@@ n1Diffing_with_keys&Define$diff@@@ o@@@ t@@@@~ @ B~ @ u@@@@K@A@*ParametersM&weight@1Diffing_with_keys&Define&change@@@ @@@ @@ @A  A  @@L@@$test@!D%state@@@ @1Diffing_with_keys&Define$left@@@ @1Diffing_with_keys&Define%right@@@ &Stdlib&resultf@@@ 1Diffing_with_keys&Define$diff@@@ @@@ @@ @@ @@ @SB  TB  @@RM@@&update@1Diffing_with_keys&Define&change@@@ @!D%state@@@ !D%state@@@ @@ @@ @zC  {C  @@yN@@(key_left@!D$left@@@ %@@@ @@ @E  $E  B@@O@@)key_right@!D%right@@@ =@@@ @@ @F C GF C g@@P@@@@@ w yG h m@Q@@ӱ&SimpleN@@Ǒ$diff@!D%state@@@ @Р!D$left@@@ @@@ @Ҡ!D%right@@@ @@@ 1Diffing_with_keys&Define%patch@@@ @@ @@ @@ @J  J  @@R@@@@I o qK  @S@@@@@sM  @T@@@@3 When diffing lists where each element has a distinct key, we can refine the diffing patch by introducing two composite edit moves: swaps and moves.@$ $Swap )s exchange the position of two elements. $Swap3 cost is set to 42 * change - epsilon%. $Move &s change the position of one element. $Move3 cost is set to ;delete + addition - epsilon!.@2 When the cost 1delete + addition1 is greater than &change < and with those specific weights, the optimal patch with $Swap&s and $Move Js can be computed directly and cheaply from the original optimal patch.@@@@@@@@@@@@AI#:Diffing_with_keys.with_pos@aY@\@@[@N@@M@@A@@GF@@:Diffing_with_keys.with_pos@C@ E@@@@+#:Diffing_with_keys.mismatch@'Y$Y!Y@@@@@@@@@@@@@@@@萠@@@@@@@@@@@@@@@@A@@@@#8Diffing_with_keys.change3 JThis specialized version of changes introduces two composite changes: $Move% and $Swap@@@@@@@@@@@@YYY@@@@@@@@@@@@@@@@us@@r@h@@g@]@@\@@@@NL@@K@A@@@@@@@53@@2@(@@'@@@@@A@@"@@8Diffing_with_keys.prefix@@@@@/8Diffing_with_keys.Define@AѢ !Diffing.Defs with type eq := unit,Diffing.Defs@5 with type eq := unit#=Diffing_with_keys.Define.diff@@@AϠ@@@#=Diffing_with_keys.Define.left@@@A@@@#>Diffing_with_keys.Define.right@@@A@@@# )Diffing_with_keys.Define.composite_change3=Composite changes and patches@@@@@@@@@@@@@@A@lk@@#>Diffing_with_keys.Define.patch@@@Ai@[Z@@#?Diffing_with_keys.Define.change3.Atomic changes@@@@@@@@@@@@@@A^@0/@@ #Diffing_with_keys.Define.Parameters@,A" *Diffing_with_keys.Define.Parameters.weight@,@-@@@@ (Diffing_with_keys.Define.Parameters.test@@@@ @@@@렕 *Diffing_with_keys.Define.Parameters.update@@@@@@@Р ,Diffing_with_keys.Define.Parameters.key_left@@@@@@ -Diffing_with_keys.Define.Parameters.key_right@@@@@@@@@/?Diffing_with_keys.Define.Simple@Aa!*1Diffing_with_keys&Define*Parameters*Parameters@ $Diffing_with_keys.Define.Simple.diff@@@@@@@@@@@@@@@@@@@@@@@@@@A*Format_doc'Diffing@@@@@