~jaro/balkon

b36dcd9859e8d5209a08186555b8f799ad2c8b0f — Jaro 1 year, 7 months ago dfa301d
Describe box edges with extensible type.
34 files changed, 265 insertions(+), 242 deletions(-)

M .golden/paginatedParagraphLayout/loremIpsum20em.golden
M .golden/paginatedParagraphLayout/spannedArabicFiller20em.golden
M .golden/paragraphLayout/arabicFiller20em.golden
M .golden/paragraphLayout/czechHello.golden
M .golden/paragraphLayout/czechHelloParagraphNarrow.golden
M .golden/paragraphLayout/czechHelloParagraphUltraNarrow.golden
M .golden/paragraphLayout/devanagari.golden
M .golden/paragraphLayout/devanagariAccent.golden
M .golden/paragraphLayout/devanagariPrefixedAccent.golden
M .golden/paragraphLayout/hardBreaksLTR.golden
M .golden/paragraphLayout/hardBreaksRTL.golden
M .golden/paragraphLayout/ligature.golden
M .golden/paragraphLayout/ligatureParagraphBreak1.golden
M .golden/paragraphLayout/ligatureParagraphBreak2.golden
M .golden/paragraphLayout/lineHeightLarger.golden
M .golden/paragraphLayout/lineHeightNormal.golden
M .golden/paragraphLayout/lineHeightSmaller.golden
M .golden/paragraphLayout/loremIpsum100em.golden
M .golden/paragraphLayout/loremIpsum20em.golden
M .golden/paragraphLayout/manySpaces.golden
M .golden/paragraphLayout/mixedLanguageLTR.golden
M .golden/paragraphLayout/mixedScriptWords.golden
M .golden/paragraphLayout/spannedArabicFiller20em.golden
M .golden/paragraphLayout/spannedLoremIpsum20em.golden
M .golden/richParagraphLayout/hardBoxBreakLTR.golden
M .golden/richParagraphLayout/hardBoxBreakRTL.golden
M .golden/richParagraphLayout/mixedScript.golden
M .golden/richParagraphLayout/mixedScriptWrap.golden
M .golden/richParagraphLayout/mixedSizes.golden
M .golden/richParagraphLayout/nestedBoxes.golden
M lib/Data/Text/ParagraphLayout/Plain.hs
M lib/Data/Text/ParagraphLayout/Rich.hs
M src/Data/Text/ParagraphLayout/Internal/AncestorBox.hs
M src/Data/Text/ParagraphLayout/Internal/Layout.hs
M .golden/paginatedParagraphLayout/loremIpsum20em.golden => .golden/paginatedParagraphLayout/loremIpsum20em.golden +11 -11
@@ 6,7 6,7 @@
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 18310, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 56,7 56,7 @@
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 17443, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 112,7 112,7 @@
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 19791, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 167,7 167,7 @@
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 17562, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 215,7 215,7 @@
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 18769, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 270,7 270,7 @@
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 19226, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 321,7 321,7 @@
            { fragmentUserData = ()
            , fragmentLine = 7
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 17973, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 373,7 373,7 @@
            { fragmentUserData = ()
            , fragmentLine = 8
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 18971, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 435,7 435,7 @@
            { fragmentUserData = ()
            , fragmentLine = 9
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 17239, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 483,7 483,7 @@
            { fragmentUserData = ()
            , fragmentLine = 10
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 19199, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 536,7 536,7 @@
            { fragmentUserData = ()
            , fragmentLine = 11
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 12076, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paginatedParagraphLayout/spannedArabicFiller20em.golden => .golden/paginatedParagraphLayout/spannedArabicFiller20em.golden +14 -14
@@ 6,7 6,7 @@
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 12652, y_origin = 0, x_size = 7198, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 38,7 38,7 @@
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 7060, y_origin = 0, x_size = 5592, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 63,7 63,7 @@
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 7060, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 96,7 96,7 @@
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 14850, y_origin = -1500, x_size = 4045, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 120,7 120,7 @@
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 9168, y_origin = -1500, x_size = 5682, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 150,7 150,7 @@
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 3213, y_origin = -1500, x_size = 5955, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 180,7 180,7 @@
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 3213, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 240,7 240,7 @@
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 14300, y_origin = 0, x_size = 4862, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 267,7 267,7 @@
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 10225, y_origin = 0, x_size = 4075, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 290,7 290,7 @@
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 3898, y_origin = 0, x_size = 6327, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 320,7 320,7 @@
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 3898, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 339,7 339,7 @@
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 12238, y_origin = -1500, x_size = 2357, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 359,7 359,7 @@
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 5880, y_origin = -1500, x_size = 6358, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 390,7 390,7 @@
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 5880, y_size = -1500}
            , fragmentPen = (0, -1085)

M .golden/paragraphLayout/arabicFiller20em.golden => .golden/paragraphLayout/arabicFiller20em.golden +4 -4
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 19850, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 65,7 65,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 18895, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 127,7 127,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 19162, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 184,7 184,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4500, x_size = 14595, y_size = -1500}
            , fragmentPen = (0, -1085)

M .golden/paragraphLayout/czechHello.golden => .golden/paragraphLayout/czechHello.golden +1 -1
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 5274, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/czechHelloParagraphNarrow.golden => .golden/paragraphLayout/czechHelloParagraphNarrow.golden +5 -5
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 1234, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 19,7 19,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 1089, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 33,7 33,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 948, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 46,7 46,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 961, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 59,7 59,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 835, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/czechHelloParagraphUltraNarrow.golden => .golden/paragraphLayout/czechHelloParagraphUltraNarrow.golden +11 -11
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 663, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 18,7 18,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 571, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 30,7 30,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 590, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 42,7 42,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 253, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 54,7 54,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 246, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 66,7 66,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 446, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 78,7 78,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 7
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 502, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 90,7 90,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 8
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 559, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 102,7 102,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 9
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 402, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 114,7 114,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 10
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 559, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 126,7 126,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 11
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 276, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/devanagari.golden => .golden/paragraphLayout/devanagari.golden +1 -1
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 8640, y_size = -1630}
            , fragmentPen = (0, -1171)

M .golden/paragraphLayout/devanagariAccent.golden => .golden/paragraphLayout/devanagariAccent.golden +1 -1
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 645, y_size = -1000}
            , fragmentPen = (0, -500)

M .golden/paragraphLayout/devanagariPrefixedAccent.golden => .golden/paragraphLayout/devanagariPrefixedAccent.golden +1 -1
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 0, y_size = -1000}
            , fragmentPen = (0, -500)

M .golden/paragraphLayout/hardBreaksLTR.golden => .golden/paragraphLayout/hardBreaksLTR.golden +9 -9
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 1563, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 23,7 23,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 3357, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 47,7 47,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 1563, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 64,7 64,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 4305, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 80,7 80,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 861, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 92,7 92,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 1563, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 109,7 109,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 7
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 0, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 120,7 120,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 8
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 3675, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 136,7 136,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 9
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 1722, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/hardBreaksRTL.golden => .golden/paragraphLayout/hardBreaksRTL.golden +9 -9
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 2808, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 23,7 23,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 5852, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 47,7 47,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 2808, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 64,7 64,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4500, x_size = 4884, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 81,7 81,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -6000, x_size = 1211, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 93,7 93,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -7500, x_size = 2808, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 110,7 110,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 7
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -9000, x_size = 0, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 121,7 121,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 8
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -10500, x_size = 4156, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 137,7 137,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 9
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -12000, x_size = 1960, y_size = -1500}
            , fragmentPen = (0, -1085)

M .golden/paragraphLayout/ligature.golden => .golden/paragraphLayout/ligature.golden +1 -1
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 4672, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/ligatureParagraphBreak1.golden => .golden/paragraphLayout/ligatureParagraphBreak1.golden +3 -3
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 2162, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 21,7 21,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 2104, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 37,7 37,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 402, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/ligatureParagraphBreak2.golden => .golden/paragraphLayout/ligatureParagraphBreak2.golden +3 -3
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 1772, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 21,7 21,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 1361, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 35,7 35,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 1535, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/lineHeightLarger.golden => .golden/paragraphLayout/lineHeightLarger.golden +1 -1
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 522, y_size = -1600}
            , fragmentPen = (0, -1172)

M .golden/paragraphLayout/lineHeightNormal.golden => .golden/paragraphLayout/lineHeightNormal.golden +1 -1
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 522, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/lineHeightSmaller.golden => .golden/paragraphLayout/lineHeightSmaller.golden +1 -1
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 522, y_size = -599}
            , fragmentPen = (0, -671)

M .golden/paragraphLayout/loremIpsum100em.golden => .golden/paragraphLayout/loremIpsum100em.golden +3 -3
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 95412, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 229,7 229,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 98954, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 461,7 461,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 4041, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/loremIpsum20em.golden => .golden/paragraphLayout/loremIpsum20em.golden +11 -11
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 18310, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 56,7 56,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 17443, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 105,7 105,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 19791, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 160,7 160,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 17562, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 208,7 208,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 18769, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 263,7 263,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 19226, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 314,7 314,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 7
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 17973, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 366,7 366,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 8
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 18971, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 421,7 421,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 9
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 17239, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 469,7 469,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 10
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 19199, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 522,7 522,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 11
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 12076, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/manySpaces.golden => .golden/paragraphLayout/manySpaces.golden +4 -4
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 3132, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 23,7 23,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 3132, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 40,7 40,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 3132, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 57,7 57,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 3132, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/mixedLanguageLTR.golden => .golden/paragraphLayout/mixedLanguageLTR.golden +2 -2
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 4837, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 31,7 31,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 4837, y_origin = 0, x_size = 1276, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/mixedScriptWords.golden => .golden/paragraphLayout/mixedScriptWords.golden +23 -23
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 20,7 20,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 777, y_origin = 0, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 34,7 34,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3112, y_origin = 0, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 48,7 48,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 62,7 62,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 777, y_origin = -1121, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 76,7 76,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3112, y_origin = -1121, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 90,7 90,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 104,7 104,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 2335, y_origin = -2242, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 118,7 118,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3112, y_origin = -2242, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 132,7 132,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 146,7 146,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 2335, y_origin = -3363, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 160,7 160,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3112, y_origin = -3363, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 174,7 174,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 253, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 186,7 186,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 253, y_origin = -4484, x_size = 763, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 198,7 198,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 1016, y_origin = -4484, x_size = 737, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 212,7 212,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 1753, y_origin = -4484, x_size = 763, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 224,7 224,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 2516, y_origin = -4484, x_size = 484, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 237,7 237,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3000, y_origin = -4484, x_size = 763, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 249,7 249,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3763, y_origin = -4484, x_size = 253, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 261,7 261,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 4016, y_origin = -4484, x_size = 763, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 273,7 273,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 763, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 285,7 285,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 763, y_origin = -5605, x_size = 253, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 297,7 297,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 1016, y_origin = -5605, x_size = 763, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/paragraphLayout/spannedArabicFiller20em.golden => .golden/paragraphLayout/spannedArabicFiller20em.golden +14 -14
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 12652, y_origin = 0, x_size = 7198, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 38,7 38,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 7060, y_origin = 0, x_size = 5592, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 63,7 63,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 7060, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 96,7 96,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 14850, y_origin = -1500, x_size = 4045, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 120,7 120,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 9168, y_origin = -1500, x_size = 5682, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 150,7 150,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 3213, y_origin = -1500, x_size = 5955, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 180,7 180,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1500, x_size = 3213, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 200,7 200,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 14300, y_origin = -3000, x_size = 4862, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 227,7 227,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 10225, y_origin = -3000, x_size = 4075, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 250,7 250,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 3898, y_origin = -3000, x_size = 6327, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 280,7 280,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3000, x_size = 3898, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 299,7 299,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 12238, y_origin = -4500, x_size = 2357, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 319,7 319,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 5880, y_origin = -4500, x_size = 6358, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 350,7 350,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4500, x_size = 5880, y_size = -1500}
            , fragmentPen = (0, -1085)

M .golden/paragraphLayout/spannedLoremIpsum20em.golden => .golden/paragraphLayout/spannedLoremIpsum20em.golden +30 -30
@@ 6,7 6,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 8747, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 38,7 38,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 8747, y_origin = 0, x_size = 9563, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 73,7 73,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 8553, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 108,7 108,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 8553, y_origin = -1121, x_size = 8890, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 139,7 139,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 9114, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 174,7 174,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 9114, y_origin = -2242, x_size = 7467, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 203,7 203,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 16581, y_origin = -2242, x_size = 3210, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 222,7 222,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -3363, x_size = 3799, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 244,7 244,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 3799, y_origin = -3363, x_size = 7878, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 274,7 274,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 4
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 11677, y_origin = -3363, x_size = 5885, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 298,7 298,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -4484, x_size = 5686, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 325,7 325,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 5686, y_origin = -4484, x_size = 8592, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 359,7 359,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 5
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 14278, y_origin = -4484, x_size = 4491, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 381,7 381,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -5605, x_size = 1301, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 398,7 398,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 1301, y_origin = -5605, x_size = 11041, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 433,7 433,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 6
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 12342, y_origin = -5605, x_size = 6884, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 463,7 463,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 7
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -6726, x_size = 10089, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 499,7 499,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 7
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 10089, y_origin = -6726, x_size = 7884, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 532,7 532,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 8
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -7847, x_size = 8158, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 564,7 564,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 8
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 8158, y_origin = -7847, x_size = 6988, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 595,7 595,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 8
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 15146, y_origin = -7847, x_size = 3825, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 615,7 615,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 9
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -8968, x_size = 4594, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 638,7 638,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 9
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 4594, y_origin = -8968, x_size = 10907, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 677,7 677,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 9
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 15501, y_origin = -8968, x_size = 1738, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 691,7 691,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 10
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -10089, x_size = 6426, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 719,7 719,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 10
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 6426, y_origin = -10089, x_size = 5590, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 747,7 747,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 10
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 12016, y_origin = -10089, x_size = 7183, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 772,7 772,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 11
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -11210, x_size = 2652, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 792,7 792,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 11
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 2652, y_origin = -11210, x_size = 5383, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 819,7 819,7 @@ ParagraphLayout
            { fragmentUserData = ()
            , fragmentLine = 11
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = (), boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = (), boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 8035, y_origin = -11210, x_size = 4041, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/richParagraphLayout/hardBoxBreakLTR.golden => .golden/richParagraphLayout/hardBoxBreakLTR.golden +4 -4
@@ 21,8 21,8 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Just 150, boxRightSpacing = Nothing, boxStartSpacing = Just 150, boxEndSpacing = Nothing}
                , AncestorBox {boxUserData = "box1", boxLeftSpacing = Just 50, boxRightSpacing = Nothing, boxStartSpacing = Just 50, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = SpacedEdge 150, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 150, boxEndEdge = NoEdge}
                , AncestorBox {boxUserData = "box1", boxLeftEdge = SpacedEdge 50, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 50, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3533, y_origin = 0, x_size = 2222, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 37,8 37,8 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Just 200, boxStartSpacing = Nothing, boxEndSpacing = Just 200}
                , AncestorBox {boxUserData = "box1", boxLeftSpacing = Nothing, boxRightSpacing = Just 100, boxStartSpacing = Nothing, boxEndSpacing = Just 100}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 200, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 200}
                , AncestorBox {boxUserData = "box1", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 100, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 100}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 2222, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/richParagraphLayout/hardBoxBreakRTL.golden => .golden/richParagraphLayout/hardBoxBreakRTL.golden +4 -4
@@ 5,8 5,8 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Just 200, boxStartSpacing = Just 200, boxEndSpacing = Nothing}
                , AncestorBox {boxUserData = "box1", boxLeftSpacing = Nothing, boxRightSpacing = Just 100, boxStartSpacing = Just 100, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 200, boxStartEdge = SpacedEdge 200, boxEndEdge = NoEdge}
                , AncestorBox {boxUserData = "box1", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 100, boxStartEdge = SpacedEdge 100, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = 0, x_size = 1632, y_size = -1500}
            , fragmentPen = (0, -1085)


@@ 53,8 53,8 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Just 150, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Just 150}
                , AncestorBox {boxUserData = "box1", boxLeftSpacing = Just 50, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Just 50}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = SpacedEdge 150, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 150}
                , AncestorBox {boxUserData = "box1", boxLeftEdge = SpacedEdge 50, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 50}
                ]
            , fragmentRect = Rect {x_origin = 2355, y_origin = -1500, x_size = 1000, y_size = -1500}
            , fragmentPen = (0, -1085)

M .golden/richParagraphLayout/mixedScript.golden => .golden/richParagraphLayout/mixedScript.golden +5 -5
@@ 31,7 31,7 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box1", boxLeftSpacing = Just 50, boxRightSpacing = Nothing, boxStartSpacing = Just 50, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box1", boxLeftEdge = SpacedEdge 50, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 50, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3162, y_origin = 0, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 45,7 45,7 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box1", boxLeftSpacing = Nothing, boxRightSpacing = Just 100, boxStartSpacing = Nothing, boxEndSpacing = Just 100}
                [ AncestorBox {boxUserData = "box1", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 100, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 100}
                ]
            , fragmentRect = Rect {x_origin = 3939, y_origin = 0, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 72,7 72,7 @@ ParagraphLayout
            { fragmentUserData = "text4"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Just 150, boxRightSpacing = Nothing, boxStartSpacing = Just 150, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = SpacedEdge 150, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 150, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 8859, y_origin = 0, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 86,7 86,7 @@ ParagraphLayout
            { fragmentUserData = "text4"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 11194, y_origin = 0, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 100,7 100,7 @@ ParagraphLayout
            { fragmentUserData = "text4"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Just 200, boxStartSpacing = Nothing, boxEndSpacing = Just 200}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 200, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 200}
                ]
            , fragmentRect = Rect {x_origin = 11971, y_origin = 0, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/richParagraphLayout/mixedScriptWrap.golden => .golden/richParagraphLayout/mixedScriptWrap.golden +7 -7
@@ 31,7 31,7 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box1", boxLeftSpacing = Just 50, boxRightSpacing = Nothing, boxStartSpacing = Just 50, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box1", boxLeftEdge = SpacedEdge 50, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 50, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3162, y_origin = 0, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 45,7 45,7 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box1", boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box1", boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 3939, y_origin = 0, x_size = 763, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 57,7 57,7 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box1", boxLeftSpacing = Nothing, boxRightSpacing = Just 100, boxStartSpacing = Nothing, boxEndSpacing = Just 100}
                [ AncestorBox {boxUserData = "box1", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 100, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 100}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -1121, x_size = 1549, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 83,7 83,7 @@ ParagraphLayout
            { fragmentUserData = "text4"
            , fragmentLine = 2
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Just 150, boxRightSpacing = Nothing, boxStartSpacing = Just 150, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = SpacedEdge 150, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 150, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 4134, y_origin = -1121, x_size = 763, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 95,7 95,7 @@ ParagraphLayout
            { fragmentUserData = "text4"
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 0, y_origin = -2242, x_size = 1549, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 108,7 108,7 @@ ParagraphLayout
            { fragmentUserData = "text4"
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Nothing, boxStartSpacing = Nothing, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = NoEdge, boxRightEdge = NoEdge, boxStartEdge = NoEdge, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 1549, y_origin = -2242, x_size = 777, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 122,7 122,7 @@ ParagraphLayout
            { fragmentUserData = "text4"
            , fragmentLine = 3
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Just 200, boxStartSpacing = Nothing, boxEndSpacing = Just 200}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 200, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 200}
                ]
            , fragmentRect = Rect {x_origin = 2326, y_origin = -2242, x_size = 2335, y_size = -1121}
            , fragmentPen = (0, -932)

M .golden/richParagraphLayout/mixedSizes.golden => .golden/richParagraphLayout/mixedSizes.golden +2 -2
@@ 19,7 19,7 @@ ParagraphLayout
            { fragmentUserData = "smallText1"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "smallBox1", boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = "smallBox1", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 1651, y_origin = 0, x_size = 1956, y_size = -841}
            , fragmentPen = (0, -699)


@@ 50,7 50,7 @@ ParagraphLayout
            { fragmentUserData = "smallText2"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "smallBox2", boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = "smallBox2", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 5258, y_origin = 0, x_size = 1956, y_size = -841}
            , fragmentPen = (0, -699)

M .golden/richParagraphLayout/nestedBoxes.golden => .golden/richParagraphLayout/nestedBoxes.golden +3 -3
@@ 34,8 34,8 @@ ParagraphLayout
            { fragmentUserData = "text2"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box3", boxLeftSpacing = Just 0, boxRightSpacing = Just 0, boxStartSpacing = Just 0, boxEndSpacing = Just 0}
                , AncestorBox {boxUserData = "box2", boxLeftSpacing = Just 0, boxRightSpacing = Nothing, boxStartSpacing = Just 0, boxEndSpacing = Nothing}
                [ AncestorBox {boxUserData = "box3", boxLeftEdge = SpacedEdge 0, boxRightEdge = SpacedEdge 0, boxStartEdge = SpacedEdge 0, boxEndEdge = SpacedEdge 0}
                , AncestorBox {boxUserData = "box2", boxLeftEdge = SpacedEdge 0, boxRightEdge = NoEdge, boxStartEdge = SpacedEdge 0, boxEndEdge = NoEdge}
                ]
            , fragmentRect = Rect {x_origin = 8569, y_origin = 0, x_size = 3350, y_size = -1121}
            , fragmentPen = (0, -932)


@@ 53,7 53,7 @@ ParagraphLayout
            { fragmentUserData = "text3"
            , fragmentLine = 1
            , fragmentAncestorBoxes =
                [ AncestorBox {boxUserData = "box2", boxLeftSpacing = Nothing, boxRightSpacing = Just 0, boxStartSpacing = Nothing, boxEndSpacing = Just 0}
                [ AncestorBox {boxUserData = "box2", boxLeftEdge = NoEdge, boxRightEdge = SpacedEdge 0, boxStartEdge = NoEdge, boxEndEdge = SpacedEdge 0}
                ]
            , fragmentRect = Rect {x_origin = 11919, y_origin = 0, x_size = 2657, y_size = -1121}
            , fragmentPen = (0, -932)

M lib/Data/Text/ParagraphLayout/Plain.hs => lib/Data/Text/ParagraphLayout/Plain.hs +5 -4
@@ 43,11 43,12 @@ module Data.Text.ParagraphLayout.Plain
    , AncestorBox
        ( AncestorBox
        , boxUserData
        , boxLeftSpacing
        , boxRightSpacing
        , boxStartSpacing
        , boxEndSpacing
        , boxLeftEdge
        , boxRightEdge
        , boxStartEdge
        , boxEndEdge
        )
    , BoxEdge (NoEdge, SpacedEdge)
    )
where


M lib/Data/Text/ParagraphLayout/Rich.hs => lib/Data/Text/ParagraphLayout/Rich.hs +5 -4
@@ 55,11 55,12 @@ module Data.Text.ParagraphLayout.Rich
    , AncestorBox
        ( AncestorBox
        , boxUserData
        , boxLeftSpacing
        , boxRightSpacing
        , boxStartSpacing
        , boxEndSpacing
        , boxLeftEdge
        , boxRightEdge
        , boxStartEdge
        , boxEndEdge
        )
    , BoxEdge (NoEdge, SpacedEdge)
    )
where


M src/Data/Text/ParagraphLayout/Internal/AncestorBox.hs => src/Data/Text/ParagraphLayout/Internal/AncestorBox.hs +48 -27
@@ 1,12 1,12 @@
module Data.Text.ParagraphLayout.Internal.AncestorBox
    ( AncestorBox (..)
    , BoxEdge (..)
    , totalLeftSpacing
    , totalRightSpacing
    )
where

import Data.Int (Int32)
import Data.Maybe (catMaybes)

-- | Describes the relationship of a fragment to an inline box that contains it.
--


@@ 20,51 20,72 @@ data AncestorBox d = AncestorBox
    { boxUserData :: d
    -- ^ User-defined data associated with the inline box.

    , boxLeftSpacing :: Maybe Int32
    -- ^ `Just` an amount of empty space to add to the left side
    -- of the fragment on account of this inline box, or `Nothing`
    -- if this is not the leftmost fragment of this inline box.
    , boxLeftEdge :: BoxEdge
    -- ^ Describes the left edge of the inline box.
    -- Typically applied to the leftmost fragment in the box,
    -- and set to `NoEdge` for all other fragments.
    --
    -- Equal to `boxStartSpacing` for LTR boxes.
    -- Equal to `boxStartEdge` for LTR boxes.
    --
    -- Equal to `boxEndSpacing` for RTL boxes.
    -- Equal to `boxEndEdge` for RTL boxes.

    , boxRightSpacing :: Maybe Int32
    -- ^ `Just` an amount of empty space to add to the right side
    -- of the fragment on account of this inline box, or `Nothing`
    -- if this is not the rightmost fragment of this inline box.
    , boxRightEdge :: BoxEdge
    -- ^ Describes the right edge of the inline box.
    -- Typically applied to the rightmost fragment in the box,
    -- and set to `NoEdge` for all other fragments.
    --
    -- Equal to `boxStartSpacing` for RTL boxes.
    -- Equal to `boxStartEdge` for RTL boxes.
    --
    -- Equal to `boxEndSpacing` for LTR boxes.
    -- Equal to `boxEndEdge` for LTR boxes.

    , boxStartSpacing :: Maybe Int32
    -- ^ `Just` an amount of empty space to add to the start side
    -- of the fragment on account of this inline box, or `Nothing`
    -- if this is not the startmost fragment of this inline box.
    , boxStartEdge :: BoxEdge
    -- ^ Describes the start edge of the inline box.
    -- Typically applied to the startmost fragment in the box,
    -- and set to `NoEdge` for all other fragments.
    --
    -- Equal to `boxLeftSpacing` for LTR boxes.
    -- Equal to `boxLeftEdge` for LTR boxes.
    --
    -- Equal to `boxRightSpacing` for RTL boxes.
    -- Equal to `boxRightEdge` for RTL boxes.

    , boxEndSpacing :: Maybe Int32
    -- ^ `Just` an amount of empty space to add to the end side
    -- of the fragment on account of this inline box, or `Nothing`
    -- if this is not the endmost fragment of this inline box.
    , boxEndEdge :: BoxEdge
    -- ^ Describes the end edge of the inline box.
    -- Typically applied to the endmost fragment in the box,
    -- and set to `NoEdge` for all other fragments.
    --
    -- Equal to `boxLeftSpacing` for RTL boxes.
    -- Equal to `boxLeftEdge` for RTL boxes.
    --
    -- Equal to `boxRightSpacing` for LTR boxes.
    -- Equal to `boxRightEdge` for LTR boxes.

    }
    deriving (Eq, Read, Show)

-- | Describes either the absence, or the presence and size, of a box edge at a
-- given position.
data BoxEdge

    = NoEdge
    -- ^ The given box does not have an edge here.
    --
    -- This typically means that the box was fragmented and that the given edge
    -- is associated with another fragment.

    | SpacedEdge Int32
    -- ^ The given box has an edge here, adding a given amount of empty space
    -- from the `Data.Text.ParagraphLayout.Rich.fragmentRect` outward.

    deriving (Eq, Read, Show)

-- | Amount of empty space to add on account of the given `BoxEdge`.
edgeSpacing :: BoxEdge -> Int32
edgeSpacing NoEdge = 0
edgeSpacing (SpacedEdge s) = s

-- | Amount of empty space to add to the left side
-- on account of all given boxes in sum.
totalLeftSpacing :: [AncestorBox d] -> Int32
totalLeftSpacing bs = sum $ catMaybes $ map boxLeftSpacing bs
totalLeftSpacing bs = sum $ map (edgeSpacing . boxLeftEdge) bs

-- | Amount of empty space to add to the right side
-- on account of all given boxes in sum.
totalRightSpacing :: [AncestorBox d] -> Int32
totalRightSpacing bs = sum $ catMaybes $ map boxRightSpacing bs
totalRightSpacing bs = sum $ map (edgeSpacing . boxRightEdge) bs

M src/Data/Text/ParagraphLayout/Internal/Layout.hs => src/Data/Text/ParagraphLayout/Internal/Layout.hs +18 -18
@@ 150,31 150,31 @@ ancestorBoxes leftBoxes rightBoxes rs = map ancestorBox $ RS.spanBoxes rs
        ancestorBox b = case RB.boxDirection b of
            DirLTR -> AncestorBox
                { boxUserData = RB.boxUserData b
                , boxLeftSpacing = leftSpacing b
                , boxRightSpacing = rightSpacing b
                , boxStartSpacing = leftSpacing b
                , boxEndSpacing = rightSpacing b
                , boxLeftEdge = leftEdge b
                , boxRightEdge = rightEdge b
                , boxStartEdge = leftEdge b
                , boxEndEdge = rightEdge b
                }
            DirRTL -> AncestorBox
                { boxUserData = RB.boxUserData b
                , boxLeftSpacing = leftSpacing b
                , boxRightSpacing = rightSpacing b
                , boxStartSpacing = rightSpacing b
                , boxEndSpacing = leftSpacing b
                , boxLeftEdge = leftEdge b
                , boxRightEdge = rightEdge b
                , boxStartEdge = rightEdge b
                , boxEndEdge = leftEdge b
                }
            _ -> AncestorBox
                { boxUserData = RB.boxUserData b
                , boxLeftSpacing = Nothing
                , boxRightSpacing = Nothing
                , boxStartSpacing = Nothing
                , boxEndSpacing = Nothing
                , boxLeftEdge = NoEdge
                , boxRightEdge = NoEdge
                , boxStartEdge = NoEdge
                , boxEndEdge = NoEdge
                }
        leftSpacing b = if b `elem` leftBoxes
            then Just $ RB.boxLeftSpacing b
            else Nothing
        rightSpacing b = if b `elem` rightBoxes
            then Just $ RB.boxRightSpacing b
            else Nothing
        leftEdge b = if b `elem` leftBoxes
            then SpacedEdge $ RB.boxLeftSpacing b
            else NoEdge
        rightEdge b = if b `elem` rightBoxes
            then SpacedEdge $ RB.boxRightSpacing b
            else NoEdge

-- | Calculate layout for multiple horizontal runs, breaking them as necessary
-- to fit as much content as possible without exceeding the maximum line width,