0$*yo      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnNone,:<=@DQR2wThis is the main entry for "main-like" calls that already provide trees. A match is defined as equality on the labels.QTODO this should be turned into the more ususual streaming-compatible behaviour.7  !"#$%&'()*+,-./012Forest A to compareForest B to compare!score for matching nodes between A and B.if nodes between A/B? are matched up but have unequal labels, this score is chosen. Score for an in/del operation.34566   !"#$%&'()*+,-./0123458 66 !"#$%&'()*+,-./012345)  !"#$%&'()*+,-./0123456None,:<=@DQRalikelihood part(NOTE for an explanation which ITbl gets 0 or 1 check  runInside(, they have the same order requirements.c inside part NOTE : Each ITbl has a big-order (1st index) and a little-order index. We need these indices because we operate on unboxed tables internally for efficiency reasons.8The big-order index is for full table calculations. All ITbl<s with smaller "big order" are fully calculated before any ITbls with larger big orders.The little-order influences per-cell calculations. Cells with the same index are sorted by order and those with a smaller index calculated first.+For this calculation we have the following:EE has only one rule: EE -> E, the full table is filled before any other table and has big order 0.(Now, we only have tables with big order 1 left.TT, TZ, and ZTJ have only rules that each have at least one non-empty terminal in play. TZ for example has TZ -> [n,-] RR. They are executed first for a given index, because they are guaranteed to get "smaller" during recursion. Hence little order 0. Finally, FF, QQ, RR all combine *only* syntactic symbols on the right-hand side. In addition these symbols can be empty. They need to come last and have little order 1.dActual outside calculations.ANOTE: The big and little order indices are reversed compared to  runInside0. We need to evaluate the tables outside in now.49:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkl39:;<=@AE>?BCDFGJNHMIRLQKOPSTUVWXYZ[\]^_`abcdefghijk5FGHIJKLMNOPQR9:;<=>?@ABCDETSll]^_\`[ZYXWabcVUdefghijk9 :;<=>?@ABCDEF GHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklo       !"#$%&'()*+,-./0123456789:;<=>      ?@ABCDEF !G#23456789H'Forestry-0.0.0.1-1odIXyNyJAgD94HsoBFpRJData.Forest.Static.Align.LinearData.Forest.Static.Align.Affine SigLabolglAlignlDelinlDonelIndellIterlH SigGlobalgAligngDelingDonegIndelgItergHgGlobalgLabolgOTblTroxBTblBtFrstTblTrixPrettyresigscorepartpretty runForward runInside runOutsiderunSrunIOt11t12t21t22t31t32t41t42t51t52t61t62t71t72testrunAlignScoreTreesrunAlignScoreTreesIO runAlignS runAlignIO"D:R:SigCombiningSigGlobalSigGlobal$$fProductCombiningSigGlobalSigGlobal'$fProductBacktrackingSigGlobalSigGloballFgap lFinalDonelPgaplSgaplSitergFgap gFinalDonegPgapgSgapgSiterPretty'pretty'iTblrun