packages feed

typst 0.3.2.1 → 0.4

raw patch · 705 files changed

+12788/−12322 lines, 705 filesdep ~typst-symbols

Dependency ranges changed: typst-symbols

Files

CHANGELOG.md view
@@ -1,5 +1,60 @@ # Revision history for typst-hs +## 0.4++  * `evaluateTypst` now returns a single Content instead of a sequence+     (breaking API change). The Content is a "document" element that wraps+     the other contents. (This is added automatically in typst:+     https://typst.app/docs/reference/model/document/#parameters-title.)++  * Improve math parser.++  * Add `sys` module and `sys.version`.++  * Math: add `sech` and `csch` operators, `math.mid`.++  * `math.op` is no longer limited to string argument.++  * Remove automatic matching for `|..|` in math (typst 0.8 breaking change).++  * Fix `in` so it works with a type.++  * `repr` label with angle brackets.++  * `cite` now just takes one positional element, a label+    instead of strings (typst 0.9 breaing change).++  * Add `quote` element.++  * Add first-class types. `type()` function now returns a+    ValType instead of a string. Allow ValTypes to == strings+    for compatibility, as in typst.++  * `highlight` element for text.++  * Allow array `zip` method to take any number of arguments.++  * Add `calc.tau`.++  * Add array `intersperse` method.++  * Add string `rev` method.++  * Fix search path for typst packages, from+    `cache/typst/packages/preview/packagename-major.minor.patch` to+    `cache/typst/packages/preview/packagename-major/minor.patch` (#18).++  * Add support of 'wide' spacing character.++  * Fix precedence for numerical attachments (#17).+    Typst makes a subtle distinction between `$a_1(x)$`, in which+    the `_` groups more tightly than the `(..)`, and $`a_f(x)$`,+    in which the `(..)` groups more tightly than the `_`.+    This patch implements the distinction.  This fixes conversion of,+    e.g., `$n(a)^(b)$`.++  * Use typst-symbols 0.1.5.+ ## 0.3.2.1    * Fix resolution of symbols (#15). Symbols like `dot`, which only have
app/Main.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE OverloadedLists #-} {-# LANGUAGE ScopedTypeVariables #-}  module Main where@@ -8,9 +9,8 @@ import Data.Maybe (fromMaybe) import qualified Data.Text.Encoding as TE import qualified Data.Text.IO as TIO-import System.Environment (getArgs) import System.Directory (doesFileExist)-import System.Environment (lookupEnv)+import System.Environment (getArgs, lookupEnv) import System.Exit import System.IO (hPutStrLn, stderr) import System.Timeout (timeout)@@ -86,11 +86,11 @@             result <- evaluateTypst operations "stdin" parseResult             case result of               Left e -> err $ show e-              Right cs -> do+              Right c -> do                 when (optShowEval opts || showAll) $ do                   when showAll $ putStrLn "--- evaluated ---"-                  pPrint cs+                  pPrint c                 when (optShowRepr opts || showAll) $ do                   when showAll $ putStrLn "--- repr ---"-                  TIO.putStrLn $ repr $ VContent cs+                  TIO.putStrLn $ repr $ VContent [c]             exitSuccess
src/Typst/Evaluate.hs view
@@ -32,7 +32,8 @@ import Text.Parsec import Typst.Bind (destructuringBind) import Typst.Methods (getMethod)-import Typst.Module.Standard (loadFileText, standardModule, symModule)+import Typst.Module.Standard (loadFileText, standardModule, symModule,+                              sysModule) import Typst.Module.Math (mathModule) import Typst.MathClass (mathClassOf, MathClass(Relation)) import Typst.Parse (parseTypst)@@ -57,10 +58,12 @@   FilePath ->   -- | Markup produced by 'parseTypst'   [Markup] ->-  m (Either ParseError (Seq Content))+  m (Either ParseError Content) evaluateTypst operations fp =   runParserT-    (mconcat <$> many pContent <* eof)+    (do contents <- mconcat <$> many pContent <* eof+        -- "All documents are automatically wrapped in a document element."+        pure $ Elt "document" Nothing [("body", VContent contents)])     initialEvalState { evalOperations = operations,                        evalPackageRoot = takeDirectory fp }     fp@@ -241,6 +244,7 @@     Equation display ms -> inBlock BlockScope $ do       importModule mathModule       importModule symModule+      importModule sysModule       oldMath <- evalMath <$> getState       updateState $ \st -> st {evalMath = True}       content <- pInnerContents ms@@ -630,12 +634,18 @@             VString t' -> pure $ VBoolean $ t' `T.isInfixOf` t             VRegex re -> pure $ VBoolean $ match re t             _ -> fail $ "Can't apply 'in' to " <> show v1 <> " and string"+        VType ty ->+          case v1 of+            VString t' -> pure $ VBoolean $ t' `T.isInfixOf` (prettyType ty)+            VRegex re -> pure $ VBoolean $ match re (prettyType ty)+            _ -> fail $ "Can't apply 'in' to " <> show v1         VArray vec -> pure $ VBoolean $ V.elem v1 vec         VDict m ->           case v1 of             VString t -> pure $ VBoolean $ isJust $ OM.lookup (Identifier t) m             _ -> pure $ VBoolean False-        _ -> fail $ "Can't apply 'in' to " <> show v2+        _ -> fail $ "Can't apply 'in' to " <> show v2 <> show (e1,e2)+     Negated e -> do       v <- evalExpr e       case maybeNegate v of@@ -950,7 +960,7 @@   let localDir = dataDir </> "typst"   let cacheDir = cacheDir' </> "typst" #endif-  let subpath = "packages" </> namespace </> (name <> "-" <> version)+  let subpath = "packages" </> namespace </> name </> version   inLocal <- lift $ checkExistence operations (localDir </> subpath </> "typst.toml")   tomlPath <-      if inLocal
src/Typst/Methods.hs view
@@ -146,6 +146,8 @@       case fld of         "len" ->           pure $ makeFunction $ pure $ VInteger (fromIntegral $ T.length t)+        "rev" ->+          pure $ makeFunction $ pure $ VString (T.reverse t)         "first" ->           if T.null t             then fail "string is empty"@@ -428,9 +430,12 @@         "split" -> pure $ makeFunction $ do           spliton <- nthArg 1           let go v' = case V.break (== spliton) v' of-                (a, b) | V.null b -> if V.null a then [] else [VArray a]+                (a, b) | V.null b -> [VArray a | not (V.null a)]                 (a, b) -> VArray a : go (V.drop 1 b)           pure $ VArray $ V.fromList $ go v+        "intersperse" -> pure $ makeFunction $ do+          sep <- nthArg 1+          pure $ VArray . V.fromList . intersperse sep . V.toList $ v         "dedup" -> pure $ makeFunction $ do           pure $ VArray $ deduplicateVector v         "insert" -> pure $ makeFunction $ do@@ -546,8 +551,15 @@               VArray . V.fromList . map fst . sortOn snd                 <$> (mapM (\x -> (x,) <$> kf' x) (V.toList v))         "zip" -> pure $ makeFunction $ do-          (v' :: V.Vector Val) <- ask >>= getPositionalArg 1-          pure $ VArray $ V.map pairToArray $ V.zip v v'+          (xs :: [Val]) <- positional <$> ask+          let len = V.length v+          pure $ VArray $ V.filter (/= VNone) $+            V.map (\i -> maybe VNone (VArray . V.fromList)+                           (mapM (\x ->+                              case x of+                                VArray v' -> v' V.!? i+                                _ -> Nothing) (val : xs)))+              (V.enumFromTo 0 (len - 1))         "sum" -> pure $ makeFunction $ do           mbv <- namedArg "default" Nothing           case V.uncons v of@@ -670,9 +682,6 @@                                     (UTCTime d t)         _ -> noMethod "DateTime" fld     _ -> noMethod (drop 1 $ takeWhile (/= ' ') $ show val) fld--pairToArray :: (Val, Val) -> Val-pairToArray (x, y) = VArray $ V.fromList [x, y]  formatNumber :: Text -> Int -> Text formatNumber t n = F.foldMap go $ T.unpack t
src/Typst/Module/Calc.hs view
@@ -192,5 +192,6 @@       ("atan", makeFunction $ VAngle . atan <$> nthArg 1),       ("atan2", makeFunction $ VAngle <$> (atan2 <$> nthArg 1 <*> nthArg 2)),       ("e", VFloat (exp 1)),-      ("pi", VFloat pi)+      ("pi", VFloat pi),+      ("tau", VFloat (2 * pi))     ]
src/Typst/Module/Math.hs view
@@ -54,6 +54,7 @@       makeElement (Just "math") "sqrt" [("radicand", One TContent)],       makeElement (Just "math") "cases" [("children", Many TContent)],       makeElement (Just "math") "lr" [("body", Many TContent)],+      makeElement (Just "math") "mid" [("body", One TContent)],       makeElement (Just "math") "abs" [("body", One TContent)],       makeElement (Just "math") "norm" [("body", One TContent)],       makeElement (Just "math") "floor" [("body", One TContent)],@@ -70,7 +71,7 @@       makeElement (Just "math") "upright" [("body", One TContent)],       makeElement (Just "math") "italic" [("body", One TContent)],       makeElement (Just "math") "bold" [("body", One TContent)],-      makeElement (Just "math") "op" [("text", One TString)],+      makeElement (Just "math") "op" [("text", One TAny)],       makeElement (Just "math") "underline" [("body", One TContent)],       makeElement (Just "math") "overline" [("body", One TContent)],       makeElement@@ -126,7 +127,8 @@   [ ("thin", Txt "\8201"),     ("thick", Txt "\8197"),     ("med", Txt "\8287"),-    ("quad", Txt "\8195")+    ("quad", Txt "\8195"),+    ("wide", Txt "\8195\8195")   ]  predefinedOperators :: M.Map Identifier Content@@ -171,6 +173,7 @@           "cos",           "cosh",           "cot",+          "csch",           "ctg",           "coth",           "csc",@@ -184,6 +187,7 @@           "ln",           "log",           "sec",+          "sech",           "sin",           "sinc",           "sinh",
src/Typst/Module/Standard.hs view
@@ -7,6 +7,7 @@ module Typst.Module.Standard   ( standardModule,     symModule,+    sysModule,     loadFileText,     applyPureFunction   )@@ -51,6 +52,7 @@   M.fromList $     [ ("math", VModule "math" mathModule),       ("sym", VModule "sym" symModule),+      ("sys", VModule "sys" sysModule),       ("emoji", VModule "emoji" emojiModule),       ("calc", VModule "calc" calcModule)     ]@@ -66,6 +68,10 @@       ++ time       ++ dataLoading +sysModule :: M.Map Identifier Val+sysModule =+  M.fromList [ makeElement (Just "sys") "version" [] ]+ symModule :: M.Map Identifier Val symModule = M.map VSymbol $ makeSymbolMap typstSymbols @@ -90,6 +96,7 @@     makeElement Nothing "smallcaps" [("body", One TContent)],     makeElement Nothing "underline" [("body", One TContent)],     makeElement Nothing "overline" [("body", One TContent)],+    makeElement Nothing "highlight" [("body", One TContent)],     makeElement Nothing "raw" [("text", One TString)],     makeElement Nothing "smartquote" [],     makeElement Nothing "lower" [("text", One (TString :|: TContent))],@@ -205,15 +212,11 @@ meta :: [(Identifier, Val)] meta =   [ makeElement Nothing "bibliography" [("path", One (TString :|: TArray))],-    makeElement-      Nothing-      "cite"-      [ ("keys", Many TString),-        ("supplement", One (TContent :|: TNone))-      ],+    makeElement Nothing "cite" [("key", One TLabel)],     makeElement Nothing "document" [],     makeElement Nothing "figure" [("body", One TContent)],     makeElement Nothing "heading" [("body", One TContent)],+    makeElement Nothing "quote" [("body", One TContent)],     makeElement Nothing "layout" [("func", One TFunction)],     makeElement       Nothing@@ -332,15 +335,7 @@     ( "type",       makeFunction $ do         (x :: Val) <- nthArg 1-        pure $-          VString $-            case valType x of-              TAlignment ->-                case x of-                  VAlignment (Just _) (Just _) -> "2d alignment"-                  _ -> "alignment"-              TDict -> "dictionary"-              ty -> T.toLower . T.drop 1 . T.pack . show $ ty+        pure $ VType $ valType x     )   ] 
src/Typst/Parse.hs view
@@ -158,11 +158,11 @@  mathOperatorTable :: [[Operator Text PState Identity Markup]] mathOperatorTable =-  [ -- precedence 6-    [ Infix (attachBottom <$ op "_") AssocLeft,-      Infix (attachTop <$ op "^") AssocLeft+  [ -- precedence 7 -- attachment with number, e.g. a_1 (see #17)+    [ Infix (attachBottom <$ (try (op "_" *> lookAhead mNumber))) AssocLeft,+      Infix (attachTop <$ (try (op "^" *> lookAhead mNumber))) AssocLeft     ],-    -- precedence 5+    -- precedence 6     [ Postfix         ( try $ do             mbBeforeSpace <- stBeforeSpace <$> getState@@ -173,6 +173,10 @@             pure $ \expr -> MGroup Nothing Nothing [expr, args]         )     ],+    -- precedence 5 -- attachment with non-number, e.g. a_x+    [ Infix (attachBottom <$ op "_") AssocLeft,+      Infix (attachTop <$ op "^") AssocLeft+    ],     -- precedence 4  -- factorial needs to take precedence over fraction     [ Postfix (try $ do                   mbBeforeSpace <- stBeforeSpace <$> getState@@ -185,11 +189,17 @@     ]   ] ++ -- MAttach (Maybe bottom) (Maybe top) base+ attachBottom :: Markup -> Markup -> Markup+attachBottom (MAttach Nothing y x) z = MAttach (Just (hideOuterParens z)) y x+attachBottom z (MAttach Nothing y x) = MAttach (Just (hideOuterParens x)) y z attachBottom base x = MAttach (Just (hideOuterParens x)) Nothing base  attachTop :: Markup -> Markup -> Markup attachTop (MAttach x Nothing y) z = MAttach x (Just (hideOuterParens z)) y+attachTop z (MAttach x Nothing y) = MAttach x (Just (hideOuterParens y)) z attachTop base x = MAttach Nothing (Just (hideOuterParens x)) base  makeFrac :: Markup -> Markup -> Markup@@ -218,7 +228,12 @@ mExpr = Code <$> getPosition <*> pMathExpr  pMathExpr :: P Expr-pMathExpr = buildExpressionParser mathExpressionTable (pMathIdent <|> pLiteral)+pMathExpr = buildExpressionParser mathExpressionTable+               (pMathIdent <|> pMathLiteral)+ where+   pMathLiteral :: P Expr+   pMathLiteral = Block . Content+                    <$> many1 (mLiteral <|> mEscaped <|> mShorthand)  pMathIdent :: P Expr pMathIdent =@@ -246,11 +261,12 @@  pMath :: P Markup pMath = buildExpressionParser mathOperatorTable pBaseMath-  where-    pBaseMath =-      mNumber++pBaseMath :: P Markup+pBaseMath = mNumber         <|> mLiteral         <|> mEscaped+        <|> mShorthand         <|> mBreak         <|> mAlignPoint         <|> mExpr@@ -260,11 +276,9 @@         <|> mSymbol  mGroup :: P Markup-mGroup =-  mGrouped '(' ')' False-    <|> mGrouped '{' '}' False-    <|> mGrouped '[' ']' False-    <|> mGrouped '|' '|' True+mGroup = mGrouped '(' ')' False+     <|> mGrouped '{' '}' False+     <|> mGrouped '[' ']' False  mGrouped :: Char -> Char -> Bool -> P Markup mGrouped op' cl requireMatch = withNewlines $ try $ do@@ -358,27 +372,28 @@  mMid :: P Markup mMid = try $ do-  stBeforeSpace <$> getState >>= guard . isJust+  getState >>= guard . isJust . stBeforeSpace   void $ char '|' *> space *> ws   pure $ MGroup Nothing Nothing [Nbsp, Text "|", Nbsp] -mSymbol :: P Markup-mSymbol =-  getPosition >>= pSym+mShorthand :: P Markup+mShorthand =+  getPosition >>= \pos ->+   lexeme (Code pos <$> choice (map toShorthandParser shorthands))  where-  pSym pos = lexeme $-    (Code pos <$> choice (map toShorthandParser shorthands))-          <|> ( Text . T.singleton-                  <$> satisfy (\c -> not (isSpace c) && c /= '$' && c /= '\\')-              )-  shorthands= reverse $ sortOn (T.length . fst) mathSymbolShorthands+  shorthands = reverse (sortOn (T.length . fst) mathSymbolShorthands)   toShorthandParser (short, symname) =-    (toSym symname <$ try (string (T.unpack short)))+    toSym symname <$ try (string (T.unpack short))   toSym name =     case map (Ident . Identifier) $ T.split (== '.') name of       [] -> Literal None       [i] -> i       (i:is) -> foldr FieldAccess i is++mSymbol :: P Markup+mSymbol =+  lexeme ( Text . T.singleton+            <$> satisfy (\c -> not (isSpace c) && c /= '$' && c /= '\\'))  withIndent :: Int -> P a -> P a withIndent indent pa = do
src/Typst/Types.hs view
@@ -45,6 +45,7 @@     joinVals,     prettyVal,     valToContent,+    prettyType,     repr,     Attempt (..),   )@@ -111,6 +112,7 @@   | VSelector !Selector   | VModule Identifier (M.Map Identifier Val)   | VStyles -- just a placeholder for now+  | VType !ValType   deriving (Show, Eq, Typeable)  instance FromJSON Val where@@ -168,9 +170,10 @@   | TLabel   | TCounter   | TLocation+  | TType   | TAny   | ValType :|: ValType-  deriving (Show, Eq, Typeable)+  deriving (Show, Eq, Ord, Typeable)  valType :: Val -> ValType valType v =@@ -202,6 +205,7 @@     VModule {} -> TModule     VSelector {} -> TSelector     VStyles {} -> TStyles+    VType {} -> TType  hasType :: ValType -> Val -> Bool hasType TAny _ = True@@ -367,6 +371,11 @@   comp (VDict m1) (VDict m2) =     Just $ liftCompare (\x y -> fromMaybe LT (comp x y)) (OM.toMap m1) (OM.toMap m2)   comp (VFunction (Just i1) _ _) (VFunction (Just i2) _ _) = Just $ compare i1 i2+  comp (VType ty1) (VType ty2) = Just $ compare ty1 ty2+  comp (VType TInteger) (VString "integer") = Just EQ+  comp (VString "integer") (VType TInteger) = Just EQ+  comp (VType ty) (VString s) = Just $ compare (prettyType ty) s+  comp (VString s) (VType ty)  = Just $ compare s (prettyType ty)   comp _ _ = Nothing  instance Ord Val where@@ -802,7 +811,7 @@         )     VDirection d -> text $ T.toLower $ T.pack $ show d     VFunction _ _ _ -> mempty-    VLabel _ -> mempty+    VLabel t -> text $ "<" <> t <> ">"     VCounter _ -> mempty     VColor (RGB r g b o) ->       "rgb("@@ -852,6 +861,12 @@     VSymbol (Symbol t _ _) -> text t     VSelector _ -> mempty     VStyles -> mempty+    VType ty -> text $ prettyType ty++prettyType :: ValType -> Text+prettyType TDict = "dictionary"+prettyType TInteger = "int"+prettyType x = T.toLower . T.pack . drop 1 . show $ x  escString :: Text -> P.Doc escString =
test/Main.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE OverloadedLists #-}  module Main (main) where @@ -69,6 +70,6 @@               pure $                 fromText $                   parseOutput <> T.pack (show e)-            Right cs -> do-              let evalOutput = "--- evaluated ---\n" <> repr (VContent cs)+            Right c -> do+              let evalOutput = "--- evaluated ---\n" <> repr (VContent [c])               pure $ fromText $ parseOutput <> evalOutput
test/out/bugs/args-sink-00.out view
@@ -71,9 +71,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [(1, 2, 3, 4, 5, 6)]), -  parbreak() }+                 text(body: [(1, 2, 3, 4, 5, 6)]), +                 parbreak() })
test/out/bugs/args-underscore-00.out view
@@ -63,7 +63,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/bugs/columns-1-00.out view
@@ -67,20 +67,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Hallo+                 parbreak(), +                 text(body: [Hallo ]), -  columns(body: { text(body: [+                 columns(body: { text(body: [ ]), -                  heading(body: text(body: [A]), -                          level: 1), -                  text(body: [Text+                                 heading(body: text(body: [A]), +                                         level: 1), +                                 text(body: [Text ]), -                  heading(body: text(body: [B]), -                          level: 1), -                  text(body: [Text]), -                  parbreak() }, -          count: 2), -  parbreak() }+                                 heading(body: text(body: [B]), +                                         level: 1), +                                 text(body: [Text]), +                                 parbreak() }, +                         count: 2), +                 parbreak() })
test/out/bugs/flow-1-00.out view
@@ -126,15 +126,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  block(body: text(body: [This file tests a bug where an almost empty page occurs.])), -  text(body: [+                 block(body: text(body: [This file tests a bug where an almost empty page occurs.])), +                 text(body: [ ]), -  block(body: { text(body: [+                 block(body: { text(body: [ The text in this second block was torn apart and split up for some reason beyond my knowledge.]), -                parbreak() }), -  parbreak() }+                               parbreak() }), +                 parbreak() })
test/out/bugs/flow-2-00.out view
@@ -99,15 +99,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  v(amount: 19.0pt), -  text(body: [+                 v(amount: 19.0pt), +                 text(body: [ ]), -  block(body: { text(body: [+                 block(body: { text(body: [ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun.]), -                parbreak() }), -  parbreak() }+                               parbreak() }), +                 parbreak() })
test/out/bugs/flow-3-00.out view
@@ -90,22 +90,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  rect(body: columns(body: { text(body: [+                 rect(body: columns(body: { text(body: [ Text ]), -                             v(amount: 12.0pt), -                             text(body: [+                                            v(amount: 12.0pt), +                                            text(body: [ Hi ]), -                             v(amount: 10.0pt, -                               weak: true), -                             text(body: [+                                            v(amount: 10.0pt, +                                              weak: true), +                                            text(body: [ At column break.]), -                             parbreak() }, -                     count: 2), -       inset: 0.0pt), -  parbreak() }+                                            parbreak() }, +                                    count: 2), +                      inset: 0.0pt), +                 parbreak() })
test/out/bugs/flow-4-00.out view
@@ -58,9 +58,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  block(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), -  parbreak() }+                 block(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), +                 parbreak() })
test/out/bugs/grid-1-00.out view
@@ -80,17 +80,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  table(children: (rect(fill: rgb(100%,25%,21%,100%), -                        width: 100%), -                   rect(fill: rgb(0%,45%,85%,100%), -                        width: 100%), -                   rect(fill: rgb(18%,80%,25%,100%), -                        height: 50%, -                        width: 100%)), -        columns: (1.5cm, auto), -        rows: (auto, auto)), -  parbreak() }+                 table(children: (rect(fill: rgb(100%,25%,21%,100%), +                                       width: 100%), +                                  rect(fill: rgb(0%,45%,85%,100%), +                                       width: 100%), +                                  rect(fill: rgb(18%,80%,25%,100%), +                                       height: 50%, +                                       width: 100%)), +                       columns: (1.5cm, auto), +                       rows: (auto, auto)), +                 parbreak() })
test/out/bugs/grid-1-01.out view
@@ -72,16 +72,16 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  rect(height: 1.0em, -       width: 100%), -  text(body: [+                 rect(height: 1.0em, +                      width: 100%), +                 text(body: [ ]), -  list(children: ({ rect(height: 1.0em, -                         width: 100%), -                    text(body: [+                 list(children: ({ rect(height: 1.0em, +                                        width: 100%), +                                   text(body: [ ]), -                    list(children: ({ rect(height: 1.0em, -                                           width: 100%), -                                      parbreak() })) })) }+                                   list(children: ({ rect(height: 1.0em, +                                                          width: 100%), +                                                     parbreak() })) })) })
test/out/bugs/grid-2-00.out view
@@ -131,34 +131,37 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (rect(fill: rgb(100%,25%,21%,100%), -                       width: 100%), -                  rect(fill: rgb(0%,45%,85%,100%), -                       width: 100%), -                  rect(fill: rgb(18%,80%,25%,100%), -                       height: 80%, -                       width: 100%), -                  { text(body: [hello ]), -                    linebreak(), -                    text(body: [darkness ]), -                    text(body: [ my ]), -                    linebreak(), -                    text(body: [old ]), -                    linebreak(), -                    text(body: [friend ]), -                    linebreak(), -                    text(body: [I]) }, -                  rect(fill: rgb(0%,45%,85%,100%), -                       height: 20%, -                       width: 100%), -                  polygon(fill: rgb(100%,25%,21%,100%), -                          vertices: ((0%, 0%), -                                     (100%, 0%), -                                     (100%, 20%)))), -       columns: (2.0cm, auto), -       rows: (auto, auto)), -  parbreak() }+                 grid(children: (rect(fill: rgb(100%,25%,21%,100%), +                                      width: 100%), +                                 rect(fill: rgb(0%,45%,85%,100%), +                                      width: 100%), +                                 rect(fill: rgb(18%,80%,25%,100%), +                                      height: 80%, +                                      width: 100%), +                                 { text(body: [hello ]), +                                   linebreak(), +                                   text(body: [darkness ]), +                                   text(body: [ my ]), +                                   linebreak(), +                                   text(body: [old ]), +                                   linebreak(), +                                   text(body: [friend ]), +                                   linebreak(), +                                   text(body: [I]) }, +                                 rect(fill: rgb(0%,45%,85%,100%), +                                      height: 20%, +                                      width: 100%), +                                 polygon(fill: rgb(100%,25%,21%,100%), +                                         vertices: ((0%, +                                                     0%), +                                                    (100%, +                                                     0%), +                                                    (100%, +                                                     20%)))), +                      columns: (2.0cm, auto), +                      rows: (auto, auto)), +                 parbreak() })
test/out/bugs/grid-2-01.out view
@@ -62,12 +62,12 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet,]), -  text(body: [+                 text(body: [Lorem ipsum dolor sit amet,]), +                 text(body: [ ]), -  list(children: ({ text(body: [Lorem ipsum dolor sit amet,]), -                    parbreak() })) }+                 list(children: ({ text(body: [Lorem ipsum dolor sit amet,]), +                                   parbreak() })) })
test/out/bugs/grid-3-00.out view
@@ -62,14 +62,14 @@ , EnumListItem Nothing [ Text "B" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  v(amount: 40.0pt), -  text(body: [+                 v(amount: 40.0pt), +                 text(body: [ The following: ]), -  enum(children: (text(body: [A]), -                  { text(body: [B]), -                    parbreak() })) }+                 enum(children: (text(body: [A]), +                                 { text(body: [B]), +                                   parbreak() })) })
test/out/bugs/math-realize-00.out view
@@ -176,65 +176,65 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  math.equation(block: true, -                body: { text(body: [π]), -                        text(body: [a]) }, -                numbering: none), -  text(body: [+                 parbreak(), +                 math.equation(block: true, +                               body: { text(body: [π]), +                                       text(body: [a]) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { math.equation(block: false, -                                      body: text(body: [π]), -                                      numbering: none), -                        text(body: [a]) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { math.equation(block: false, +                                                     body: text(body: [π]), +                                                     numbering: none), +                                       text(body: [a]) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [1]), -                        text(body: [+]), -                        math.sqrt(radicand: math.frac(denom: text(body: [2]), -                                                      num: text(body: [x]))), -                        text(body: [+]), -                        math.sqrt(radicand: hide(body: math.equation(block: false, -                                                                     body: math.frac(denom: text(body: [2]), -                                                                                     num: text(body: [x])), -                                                                     numbering: none))) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [1]), +                                       text(body: [+]), +                                       math.sqrt(radicand: math.frac(denom: text(body: [2]), +                                                                     num: text(body: [x]))), +                                       text(body: [+]), +                                       math.sqrt(radicand: hide(body: math.equation(block: false, +                                                                                    body: math.frac(denom: text(body: [2]), +                                                                                                    num: text(body: [x])), +                                                                                    numbering: none))) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [a]), -                        text(body: [x]), -                        link(body: math.equation(block: false, -                                                 body: { text(body: [+]), -                                                         text(body: [b]) }, -                                                 numbering: none), -                             dest: "url") }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [a]), +                                       text(body: [x]), +                                       link(body: math.equation(block: false, +                                                                body: { text(body: [+]), +                                                                        text(body: [b]) }, +                                                                numbering: none), +                                            dest: "url") }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [f]), -                        box(baseline: 10.0pt, -                            body: text(body: [f])), -                        box(baseline: 10.0pt, -                            body: text(body: [f])) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [f]), +                                       box(baseline: 10.0pt, +                                           body: text(body: [f])), +                                       box(baseline: 10.0pt, +                                           body: text(body: [f])) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [nope]), -                        text(body: [∗]), -                        text(body: [2]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [nope]), +                                       text(body: [∗]), +                                       text(body: [2]) }, +                               numbering: none), +                 parbreak() })
test/out/bugs/math-realize-01.out view
@@ -110,43 +110,43 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: none, -                                    base: text(body: [x]), -                                    t: text(body: [2])), -                        hide(body: math.equation(block: false, -                                                 body: { math.lr(body: ({ [(], -                                                                          text(body: [≥]), -                                                                          text(body: [ϕ]), -                                                                          [)] })), -                                                         text(body: [∪]), -                                                         math.attach(b: none, -                                                                     base: text(body: [y]), -                                                                     t: text(body: [2])), -                                                         text(body: [0]) }, -                                                 numbering: none)), -                        math.attach(b: none, -                                    base: text(body: [z]), -                                    t: text(body: [2])) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { math.attach(b: none, +                                                   base: text(body: [x]), +                                                   t: text(body: [2])), +                                       hide(body: math.equation(block: false, +                                                                body: { math.lr(body: ({ [(], +                                                                                         text(body: [≥]), +                                                                                         text(body: [ϕ]), +                                                                                         [)] })), +                                                                        text(body: [∪]), +                                                                        math.attach(b: none, +                                                                                    base: text(body: [y]), +                                                                                    t: text(body: [2])), +                                                                        text(body: [0]) }, +                                                                numbering: none)), +                                       math.attach(b: none, +                                                   base: text(body: [z]), +                                                   t: text(body: [2])) }, +                               numbering: none), +                 text(body: [ Hello ]), -  hide(body: { text(body: [there ]), -               math.equation(block: false, -                             body: text(body: [x]), -                             numbering: none) }), -  text(body: [+                 hide(body: { text(body: [there ]), +                              math.equation(block: false, +                                            body: text(body: [x]), +                                            numbering: none) }), +                 text(body: [ and ]), -  hide(body: math.equation(block: true, -                           body: { text(body: [f]), -                                   math.lr(body: ({ [(], -                                                    text(body: [x]), -                                                    [)] })), -                                   text(body: [≔]), -                                   math.attach(b: none, -                                               base: text(body: [x]), -                                               t: text(body: [2])) }, -                           numbering: none)), -  parbreak() }+                 hide(body: math.equation(block: true, +                                          body: { text(body: [f]), +                                                  math.lr(body: ({ [(], +                                                                   text(body: [x]), +                                                                   [)] })), +                                                  text(body: [≔]), +                                                  math.attach(b: none, +                                                              base: text(body: [x]), +                                                              t: text(body: [2])) }, +                                          numbering: none)), +                 parbreak() })
test/out/bugs/math-realize-02.out view
@@ -310,146 +310,146 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Inline ]), -  math.equation(block: false, -                body: { text(body: [2]), -                        math.equation(block: false, -                                      body: { text(body: [α]), -                                              math.attach(b: none, -                                                          base: math.lr(body: ({ [(], -                                                                                 text(body: [M]), -                                                                                 text(body: [+]), -                                                                                 math.equation(block: false, -                                                                                               body: { text(body: [a]), -                                                                                                       math.attach(b: none, -                                                                                                                   base: text(body: [b]), -                                                                                                                   t: text(body: [2])) }, -                                                                                               numbering: none), -                                                                                 [)] })), -                                                          t: text(body: [2])) }, -                                      numbering: none) }, -                numbering: none), -  text(body: [.]), -  parbreak(), -  text(body: [Inline ]), -  math.equation(block: false, -                body: { text(body: [2]), -                        text(body: [|]), -                        text(body: [(]), -                        text(body: [α]), -                        text(body: [,]), -                        math.lr(body: ({ [(], -                                         text(body: [M]), -                                         text(body: [+]), -                                         math.equation(block: false, -                                                       body: { text(body: [a]), -                                                               math.attach(b: none, -                                                                           base: text(body: [b]), -                                                                           t: text(body: [2])) }, -                                                       numbering: none), -                                         [)] })), -                        text(body: [)]) }, -                numbering: none), -  text(body: [.]), -  parbreak(), -  text(body: [Inline ]), -  math.equation(block: false, -                body: { text(body: [2]), -                        math.equation(block: false, -                                      body: math.accent(accent: ^, -                                                        base: text(body: [x])), -                                      numbering: none), -                        text(body: [∧]), -                        math.equation(block: false, -                                      body: math.accent(accent: ^, -                                                        base: text(body: [y])), -                                      numbering: none), -                        text(body: [∧]), -                        math.equation(block: false, -                                      body: math.accent(accent: ^, -                                                        base: { math.equation(block: false, -                                                                              body: math.accent(accent: ^, -                                                                                                base: text(body: [u])), -                                                                              numbering: none), -                                                                text(body: [∧]), -                                                                math.equation(block: false, -                                                                              body: math.accent(accent: ^, -                                                                                                base: text(body: [v])), -                                                                              numbering: none) }), -                                      numbering: none) }, -                numbering: none), -  text(body: [.]), -  parbreak(), -  math.equation(block: true, -                body: { text(body: [2]), -                        math.equation(block: false, -                                      body: { text(body: [α]), -                                              math.attach(b: none, -                                                          base: math.lr(body: ({ [(], -                                                                                 text(body: [M]), -                                                                                 text(body: [+]), -                                                                                 math.equation(block: false, -                                                                                               body: { text(body: [a]), -                                                                                                       math.attach(b: none, -                                                                                                                   base: text(body: [b]), -                                                                                                                   t: text(body: [2])) }, -                                                                                               numbering: none), -                                                                                 [)] })), -                                                          t: text(body: [2])) }, -                                      numbering: none) }, -                numbering: none), -  text(body: [+                 parbreak(), +                 text(body: [Inline ]), +                 math.equation(block: false, +                               body: { text(body: [2]), +                                       math.equation(block: false, +                                                     body: { text(body: [α]), +                                                             math.attach(b: none, +                                                                         base: math.lr(body: ({ [(], +                                                                                                text(body: [M]), +                                                                                                text(body: [+]), +                                                                                                math.equation(block: false, +                                                                                                              body: { text(body: [a]), +                                                                                                                      math.attach(b: none, +                                                                                                                                  base: text(body: [b]), +                                                                                                                                  t: text(body: [2])) }, +                                                                                                              numbering: none), +                                                                                                [)] })), +                                                                         t: text(body: [2])) }, +                                                     numbering: none) }, +                               numbering: none), +                 text(body: [.]), +                 parbreak(), +                 text(body: [Inline ]), +                 math.equation(block: false, +                               body: { text(body: [2]), +                                       text(body: [|]), +                                       text(body: [(]), +                                       text(body: [α]), +                                       text(body: [,]), +                                       math.lr(body: ({ [(], +                                                        text(body: [M]), +                                                        text(body: [+]), +                                                        math.equation(block: false, +                                                                      body: { text(body: [a]), +                                                                              math.attach(b: none, +                                                                                          base: text(body: [b]), +                                                                                          t: text(body: [2])) }, +                                                                      numbering: none), +                                                        [)] })), +                                       text(body: [)]) }, +                               numbering: none), +                 text(body: [.]), +                 parbreak(), +                 text(body: [Inline ]), +                 math.equation(block: false, +                               body: { text(body: [2]), +                                       math.equation(block: false, +                                                     body: math.accent(accent: ^, +                                                                       base: text(body: [x])), +                                                     numbering: none), +                                       text(body: [∧]), +                                       math.equation(block: false, +                                                     body: math.accent(accent: ^, +                                                                       base: text(body: [y])), +                                                     numbering: none), +                                       text(body: [∧]), +                                       math.equation(block: false, +                                                     body: math.accent(accent: ^, +                                                                       base: { math.equation(block: false, +                                                                                             body: math.accent(accent: ^, +                                                                                                               base: text(body: [u])), +                                                                                             numbering: none), +                                                                               text(body: [∧]), +                                                                               math.equation(block: false, +                                                                                             body: math.accent(accent: ^, +                                                                                                               base: text(body: [v])), +                                                                                             numbering: none) }), +                                                     numbering: none) }, +                               numbering: none), +                 text(body: [.]), +                 parbreak(), +                 math.equation(block: true, +                               body: { text(body: [2]), +                                       math.equation(block: false, +                                                     body: { text(body: [α]), +                                                             math.attach(b: none, +                                                                         base: math.lr(body: ({ [(], +                                                                                                text(body: [M]), +                                                                                                text(body: [+]), +                                                                                                math.equation(block: false, +                                                                                                              body: { text(body: [a]), +                                                                                                                      math.attach(b: none, +                                                                                                                                  base: text(body: [b]), +                                                                                                                                  t: text(body: [2])) }, +                                                                                                              numbering: none), +                                                                                                [)] })), +                                                                         t: text(body: [2])) }, +                                                     numbering: none) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [2]), -                        text(body: [|]), -                        text(body: [(]), -                        text(body: [α]), -                        text(body: [,]), -                        math.lr(body: ({ [(], -                                         text(body: [M]), -                                         text(body: [+]), -                                         math.equation(block: false, -                                                       body: { text(body: [a]), -                                                               math.attach(b: none, -                                                                           base: text(body: [b]), -                                                                           t: text(body: [2])) }, -                                                       numbering: none), -                                         [)] })), -                        text(body: [)]) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [2]), +                                       text(body: [|]), +                                       text(body: [(]), +                                       text(body: [α]), +                                       text(body: [,]), +                                       math.lr(body: ({ [(], +                                                        text(body: [M]), +                                                        text(body: [+]), +                                                        math.equation(block: false, +                                                                      body: { text(body: [a]), +                                                                              math.attach(b: none, +                                                                                          base: text(body: [b]), +                                                                                          t: text(body: [2])) }, +                                                                      numbering: none), +                                                        [)] })), +                                       text(body: [)]) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [2]), -                        math.equation(block: false, -                                      body: math.accent(accent: ^, -                                                        base: text(body: [x])), -                                      numbering: none), -                        text(body: [∧]), -                        math.equation(block: false, -                                      body: math.accent(accent: ^, -                                                        base: text(body: [y])), -                                      numbering: none), -                        text(body: [∧]), -                        math.equation(block: false, -                                      body: math.accent(accent: ^, -                                                        base: { math.equation(block: false, -                                                                              body: math.accent(accent: ^, -                                                                                                base: text(body: [u])), -                                                                              numbering: none), -                                                                text(body: [∧]), -                                                                math.equation(block: false, -                                                                              body: math.accent(accent: ^, -                                                                                                base: text(body: [v])), -                                                                              numbering: none) }), -                                      numbering: none) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [2]), +                                       math.equation(block: false, +                                                     body: math.accent(accent: ^, +                                                                       base: text(body: [x])), +                                                     numbering: none), +                                       text(body: [∧]), +                                       math.equation(block: false, +                                                     body: math.accent(accent: ^, +                                                                       base: text(body: [y])), +                                                     numbering: none), +                                       text(body: [∧]), +                                       math.equation(block: false, +                                                     body: math.accent(accent: ^, +                                                                       base: { math.equation(block: false, +                                                                                             body: math.accent(accent: ^, +                                                                                                               base: text(body: [u])), +                                                                                             numbering: none), +                                                                               text(body: [∧]), +                                                                               math.equation(block: false, +                                                                                             body: math.accent(accent: ^, +                                                                                                               base: text(body: [v])), +                                                                                             numbering: none) }), +                                                     numbering: none) }, +                               numbering: none), +                 parbreak() })
test/out/bugs/parameter-pattern-00.out view
@@ -80,7 +80,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/bugs/place-base-00.out view
@@ -85,24 +85,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  place(alignment: right, -        body: text(body: [First]), -        dx: -70%, -        dy: 20%), -  text(body: [+                 place(alignment: right, +                       body: text(body: [First]), +                       dx: -70%, +                       dy: 20%), +                 text(body: [ ]), -  place(alignment: left, -        body: text(body: [Second]), -        dx: 20%, -        dy: 60%), -  text(body: [+                 place(alignment: left, +                       body: text(body: [Second]), +                       dx: 20%, +                       dy: 60%), +                 text(body: [ ]), -  place(alignment: Axes(center, horizon), -        body: text(body: [Third]), -        dx: 25%, -        dy: 25%), -  parbreak() }+                 place(alignment: Axes(center, horizon), +                       body: text(body: [Third]), +                       dx: 25%, +                       dy: 25%), +                 parbreak() })
test/out/bugs/smartquotes-in-outline-00.out view
@@ -71,11 +71,11 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  outline(), -  parbreak(), -  heading(body: text(body: [“This” “is” “a” “test”]), -          level: 1) }+                 outline(), +                 parbreak(), +                 heading(body: text(body: [“This” “is” “a” “test”]), +                         level: 1) })
test/out/bugs/square-base-00.out view
@@ -62,11 +62,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  square(body: rect(height: 80%, -                    width: 60%), -         width: 40%), -  parbreak() }+                 square(body: rect(height: 80%, +                                   width: 60%), +                        width: 40%), +                 parbreak() })
test/out/coma-00.out view
@@ -349,66 +349,66 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  strong(body: text(body: [Technische Universität Berlin])), -  text(body: [ ]), -  h(amount: 1.0fr), -  text(body: [ ]), -  strong(body: text(body: [WiSe 2019/2020])), -  text(body: [ ]), -  linebreak(), -  strong(body: text(body: [Fakultät II, Institut for Mathematik])), -  text(body: [ ]), -  h(amount: 1.0fr), -  text(body: [ Woche 3 ]), -  linebreak(), -  text(body: [Sekretariat MA ]), -  linebreak(), -  text(body: [Dr. Max Mustermann ]), -  linebreak(), -  text(body: [Ola Nordmann, John Doe]), -  parbreak(), -  v(amount: 3.0mm), -  text(body: [+                 parbreak(), +                 strong(body: text(body: [Technische Universität Berlin])), +                 text(body: [ ]), +                 h(amount: 1.0fr), +                 text(body: [ ]), +                 strong(body: text(body: [WiSe 2019/2020])), +                 text(body: [ ]), +                 linebreak(), +                 strong(body: text(body: [Fakultät II, Institut for Mathematik])), +                 text(body: [ ]), +                 h(amount: 1.0fr), +                 text(body: [ Woche 3 ]), +                 linebreak(), +                 text(body: [Sekretariat MA ]), +                 linebreak(), +                 text(body: [Dr. Max Mustermann ]), +                 linebreak(), +                 text(body: [Ola Nordmann, John Doe]), +                 parbreak(), +                 v(amount: 3.0mm), +                 text(body: [ ]), -  align(alignment: center, -        body: { text(body: [+                 align(alignment: center, +                       body: { text(body: [ ]), -                text(body: [+                               text(body: [ ]), -                text(body: strong(body: text(body: [3. Übungsblatt Computerorientierte Mathematik II])), -                     size: 1.2em), -                text(body: [ ]), -                linebreak(), -                strong(body: text(body: [Abgabe: 03.05.2019])), -                text(body: [ (bis 10:10 Uhr in MA 001) ]), -                linebreak(), -                strong(body: text(body: [Alle Antworten sind zu beweisen.])), -                parbreak() }), -  parbreak(), -  strong(body: text(body: [1. Aufgabe])), -  text(body: [ ]), -  h(amount: 1.0fr), -  text(body: [ (1 + 1 + 2 Punkte)]), -  parbreak(), -  text(body: [Ein ]), -  emph(body: text(body: [Binärbaum])), -  text(body: [ ist ein Wurzelbaum, in dem jeder Knoten ≤ 2 Kinder hat.+                               text(body: strong(body: text(body: [3. Übungsblatt Computerorientierte Mathematik II])), +                                    size: 1.2em), +                               text(body: [ ]), +                               linebreak(), +                               strong(body: text(body: [Abgabe: 03.05.2019])), +                               text(body: [ (bis 10:10 Uhr in MA 001) ]), +                               linebreak(), +                               strong(body: text(body: [Alle Antworten sind zu beweisen.])), +                               parbreak() }), +                 parbreak(), +                 strong(body: text(body: [1. Aufgabe])), +                 text(body: [ ]), +                 h(amount: 1.0fr), +                 text(body: [ (1 + 1 + 2 Punkte)]), +                 parbreak(), +                 text(body: [Ein ]), +                 emph(body: text(body: [Binärbaum])), +                 text(body: [ ist ein Wurzelbaum, in dem jeder Knoten ≤ 2 Kinder hat. Die Tiefe eines Knotens ]), -  emph(body: text(body: [v])), -  text(body: [ ist die Länge des eindeutigen Weges von der Wurzel+                 emph(body: text(body: [v])), +                 text(body: [ ist die Länge des eindeutigen Weges von der Wurzel zu ]), -  emph(body: text(body: [v])), -  text(body: [, und die Höhe von ]), -  emph(body: text(body: [v])), -  text(body: [ ist die Länge eines längsten (absteigenden) Weges+                 emph(body: text(body: [v])), +                 text(body: [, und die Höhe von ]), +                 emph(body: text(body: [v])), +                 text(body: [ ist die Länge eines längsten (absteigenden) Weges von ]), -  emph(body: text(body: [v])), -  text(body: [ zu einem Blatt. Die Höhe des Baumes ist die Höhe der Wurzel.]), -  parbreak(), -  align(alignment: center, -        body: image(path: "/graph.png", -                    width: 75%)), -  parbreak() }+                 emph(body: text(body: [v])), +                 text(body: [ zu einem Blatt. Die Höhe des Baumes ist die Höhe der Wurzel.]), +                 parbreak(), +                 align(alignment: center, +                       body: image(path: "/graph.png", +                                   width: 75%)), +                 parbreak() })
test/out/compiler/array-00.out view
@@ -84,18 +84,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [()]), -  parbreak(), -  text(body: [1]), -  parbreak(), -  text(body: [(-1)]), -  parbreak(), -  text(body: [(true, false)]), -  parbreak(), -  text(body: [("1", rgb(0%,0%,0%,100%))]), -  parbreak() }+                 parbreak(), +                 text(body: [()]), +                 parbreak(), +                 text(body: [1]), +                 parbreak(), +                 text(body: [(-1)]), +                 parbreak(), +                 text(body: [(true, false)]), +                 parbreak(), +                 text(body: [("1", rgb(0%,0%,0%,100%))]), +                 parbreak() })
test/out/compiler/array-01.out view
@@ -70,10 +70,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-02.out view
@@ -74,7 +74,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-03.out view
@@ -83,7 +83,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-06.out view
@@ -82,10 +82,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-09.out view
@@ -102,11 +102,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-10.out view
@@ -104,16 +104,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-13.out view
@@ -110,9 +110,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-14.out view
@@ -85,9 +85,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [1]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [1]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-16.out view
@@ -207,28 +207,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-19.out view
@@ -115,13 +115,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-20.out view
@@ -109,13 +109,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-21.out view
@@ -77,10 +77,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-22.out view
@@ -80,10 +80,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-24.out view
@@ -84,13 +84,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-26.out view
@@ -100,16 +100,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-28.out view
@@ -62,7 +62,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-29.out view
@@ -105,16 +105,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-32.out view
@@ -61,12 +61,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [One]), -  text(body: [, ]), -  text(body: [Two]), -  text(body: [ and ]), -  text(body: [Three]), -  text(body: [.]), -  parbreak() }+                 text(body: [One]), +                 text(body: [, ]), +                 text(body: [Two]), +                 text(body: [ and ]), +                 text(body: [Three]), +                 text(body: [.]), +                 parbreak() })
test/out/compiler/array-33.out view
@@ -291,31 +291,31 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/array-34.out view
@@ -178,25 +178,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/bench-00.out view
@@ -402,75 +402,75 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  parbreak(), -  text(body: [+                 parbreak(), +                 parbreak(), +                 text(body: [ ]), -  parbreak(), -  box(body: { text(body: [+                 parbreak(), +                 box(body: { text(body: [ ]), -              text(body: [ ]), -              strong(body: { text(body: [Technische Universität ]), -                             text(body: [Berlin]) }), -              text(body: [ ]), -              linebreak(), -              strong(body: text(body: [Fakultät II, Institut for Mathematik])), -              text(body: [ ]), -              linebreak(), -              text(body: [Sekretariat MA ]), -              linebreak(), -              text(body: [Dr. Max Mustermann ]), -              linebreak(), -              text(body: [Ola Nordmann, John Doe]), -              parbreak() }), -  text(body: [+                             text(body: [ ]), +                             strong(body: { text(body: [Technische Universität ]), +                                            text(body: [Berlin]) }), +                             text(body: [ ]), +                             linebreak(), +                             strong(body: text(body: [Fakultät II, Institut for Mathematik])), +                             text(body: [ ]), +                             linebreak(), +                             text(body: [Sekretariat MA ]), +                             linebreak(), +                             text(body: [Dr. Max Mustermann ]), +                             linebreak(), +                             text(body: [Ola Nordmann, John Doe]), +                             parbreak() }), +                 text(body: [ ]), -  align(alignment: right, -        body: box(body: { strong(body: text(body: [WiSe 2019/2020])), -                          text(body: [ ]), -                          linebreak(), -                          text(body: [Woche 3]) })), -  parbreak(), -  v(amount: 6.0mm), -  parbreak(), -  align(alignment: center, -        body: { text(body: [+                 align(alignment: right, +                       body: box(body: { strong(body: text(body: [WiSe 2019/2020])), +                                         text(body: [ ]), +                                         linebreak(), +                                         text(body: [Woche 3]) })), +                 parbreak(), +                 v(amount: 6.0mm), +                 parbreak(), +                 align(alignment: center, +                       body: { text(body: [ ]), -                text(body: [ ]), -                heading(body: { text(body: [3. Übungsblatt Computerorientierte Mathematik II ]), -                                v(amount: 4.0mm) }, -                        level: 4), -                strong(body: text(body: [Abgabe: 03.05.2019])), -                text(body: [ (bis 10:10 Uhr in MA 001) ]), -                v(amount: 4.0mm), -                text(body: [+                               text(body: [ ]), +                               heading(body: { text(body: [3. Übungsblatt Computerorientierte Mathematik II ]), +                                               v(amount: 4.0mm) }, +                                       level: 4), +                               strong(body: text(body: [Abgabe: 03.05.2019])), +                               text(body: [ (bis 10:10 Uhr in MA 001) ]), +                               v(amount: 4.0mm), +                               text(body: [ ]), -                strong(body: text(body: [Alle Antworten sind zu beweisen.])), -                parbreak() }), -  parbreak(), -  strong(body: text(body: [1. Aufgabe])), -  text(body: [ ]), -  align(alignment: right, -        body: text(body: [(1 + 1 + 2 Punkte)])), -  parbreak(), -  text(body: [Ein ]), -  emph(body: text(body: [Binärbaum])), -  text(body: [ ist ein Wurzelbaum, in dem jeder Knoten ≤ 2 Kinder hat.+                               strong(body: text(body: [Alle Antworten sind zu beweisen.])), +                               parbreak() }), +                 parbreak(), +                 strong(body: text(body: [1. Aufgabe])), +                 text(body: [ ]), +                 align(alignment: right, +                       body: text(body: [(1 + 1 + 2 Punkte)])), +                 parbreak(), +                 text(body: [Ein ]), +                 emph(body: text(body: [Binärbaum])), +                 text(body: [ ist ein Wurzelbaum, in dem jeder Knoten ≤ 2 Kinder hat. Die Tiefe eines Knotens ]), -  emph(body: text(body: [v])), -  text(body: [ ist die Länge des eindeutigen Weges von der Wurzel+                 emph(body: text(body: [v])), +                 text(body: [ ist die Länge des eindeutigen Weges von der Wurzel zu ]), -  emph(body: text(body: [v])), -  text(body: [, und die Höhe von ]), -  emph(body: text(body: [v])), -  text(body: [ ist die Länge eines längsten (absteigenden) Weges+                 emph(body: text(body: [v])), +                 text(body: [, und die Höhe von ]), +                 emph(body: text(body: [v])), +                 text(body: [ ist die Länge eines längsten (absteigenden) Weges von ]), -  emph(body: text(body: [v])), -  text(body: [ zu einem Blatt. Die Höhe des Baumes ist die Höhe der Wurzel.]), -  parbreak(), -  v(amount: 6.0mm), -  parbreak() }+                 emph(body: text(body: [v])), +                 text(body: [ zu einem Blatt. Die Höhe des Baumes ist die Höhe der Wurzel.]), +                 parbreak(), +                 v(amount: 6.0mm), +                 parbreak() })
test/out/compiler/block-00.out view
@@ -86,17 +86,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [Hello, ]), -  text(body: [my fri]), -  text(body: [end.]), -  parbreak(), -  text(body: [How]), -  text(body: [ are]), -  text(body: [ ]), -  text(body: [you]), -  text(body: [?]), -  parbreak() }+                 text(body: [Hello, ]), +                 text(body: [my fri]), +                 text(body: [end.]), +                 parbreak(), +                 text(body: [How]), +                 text(body: [ are]), +                 text(body: [ ]), +                 text(body: [you]), +                 text(body: [?]), +                 parbreak() })
test/out/compiler/block-01.out view
@@ -119,17 +119,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/block-06.out view
@@ -78,10 +78,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/break-continue-00.out view
@@ -97,16 +97,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 parbreak(), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/break-continue-01.out view
@@ -78,12 +78,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/break-continue-02.out view
@@ -90,13 +90,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 parbreak(), +                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/break-continue-03.out view
@@ -80,10 +80,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/break-continue-05.out view
@@ -77,10 +77,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/break-continue-08.out view
@@ -64,9 +64,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Hello ]), -  text(body: [World ]), -  text(body: [🌎]), -  parbreak() }+                 text(body: [Hello ]), +                 text(body: [World ]), +                 text(body: [🌎]), +                 parbreak() })
test/out/compiler/break-continue-09.out view
@@ -107,54 +107,54 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: "Roboto"), -  text(body: { text(body: [+                      font: "Roboto"), +                 text(body: { text(body: [ ], -                    font: "Roboto"), -               smallcaps(body: { text(body: [+                                   font: "Roboto"), +                              smallcaps(body: { text(body: [ Some], -                                      font: "Roboto"), -                                 parbreak() }), -               parbreak() }, -       fill: rgb(100%,25%,21%,100%), -       font: "Roboto"), -  text(body: [+                                                     font: "Roboto"), +                                                parbreak() }), +                              parbreak() }, +                      fill: rgb(100%,25%,21%,100%), +                      font: "Roboto"), +                 text(body: [ ], -       font: "Roboto"), -  text(body: [+                      font: "Roboto"), +                 text(body: [ ], -       font: "Roboto"), -  text(body: { text(body: [+                      font: "Roboto"), +                 text(body: { text(body: [ ], -                    font: "Roboto"), -               smallcaps(body: { text(body: [+                                   font: "Roboto"), +                              smallcaps(body: { text(body: [ Some], -                                      font: "Roboto"), -                                 parbreak() }), -               parbreak() }, -       fill: rgb(0%,45%,85%,100%), -       font: "Roboto"), -  text(body: [+                                                     font: "Roboto"), +                                                parbreak() }), +                              parbreak() }, +                      fill: rgb(0%,45%,85%,100%), +                      font: "Roboto"), +                 text(body: [ ], -       font: "Roboto"), -  text(body: [+                      font: "Roboto"), +                 text(body: [ ], -       font: "Roboto"), -  text(body: { text(body: [+                      font: "Roboto"), +                 text(body: { text(body: [ ], -                    font: "Roboto"), -               smallcaps(body: { text(body: [+                                   font: "Roboto"), +                              smallcaps(body: { text(body: [ Last ], -                                      font: "Roboto"), -                                 parbreak() }), -               parbreak() }, -       fill: rgb(18%,80%,25%,100%), -       font: "Roboto"), -  parbreak() }+                                                     font: "Roboto"), +                                                parbreak() }), +                              parbreak() }, +                      fill: rgb(18%,80%,25%,100%), +                      font: "Roboto"), +                 parbreak() })
test/out/compiler/break-continue-10.out view
@@ -60,7 +60,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Hello]), -  parbreak() }+                 text(body: [Hello]), +                 parbreak() })
test/out/compiler/break-continue-11.out view
@@ -66,48 +66,48 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  table(children: (text(body: [A]), -                   { text(body: [B]), -                     text(body: [B]), -                     text(body: [B]) })), -  parbreak() }+                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 table(children: (text(body: [A]), +                                  { text(body: [B]), +                                    text(body: [B]), +                                    text(body: [B]) })), +                 parbreak() })
test/out/compiler/call-00.out view
@@ -162,42 +162,42 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  strong(body: text(body: [Bold])), -  parbreak(), -  text(body: [+                 strong(body: text(body: [Bold])), +                 parbreak(), +                 text(body: [ ]), -  text(body: [1]), -  text(body: [2]), -  text(body: [3]), -  parbreak(), -  text(body: [ (it)]), -  parbreak(), -  text(body: [+                 text(body: [1]), +                 text(body: [2]), +                 text(body: [3]), +                 parbreak(), +                 text(body: [ (it)]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [A]), -  text(body: [+                 text(body: [A]), +                 text(body: [ ]), -  text(body: [A]), -  text(body: [+                 text(body: [A]), +                 text(body: [ ]), -  text(body: [A]), -  parbreak(), -  text(body: [+                 text(body: [A]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [A]), -  text(body: [B]), -  text(body: [+                 text(body: [A]), +                 text(body: [B]), +                 text(body: [ ]), -  text(body: [A]), -  text(body: [B]), -  text(body: [+                 text(body: [A]), +                 text(body: [B]), +                 text(body: [ ]), -  text(body: [A]), -  text(body: [B]), -  parbreak() }+                 text(body: [A]), +                 text(body: [B]), +                 parbreak() })
test/out/compiler/call-01.out view
@@ -101,14 +101,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/closure-00.out view
@@ -56,9 +56,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  parbreak() }+                 parbreak(), +                 parbreak() })
test/out/compiler/closure-01.out view
@@ -62,7 +62,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/closure-02.out view
@@ -85,7 +85,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/closure-03.out view
@@ -85,8 +85,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/closure-04.out view
@@ -65,7 +65,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/closure-05.out view
@@ -65,7 +65,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/closure-06.out view
@@ -78,7 +78,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/closure-07.out view
@@ -63,7 +63,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/closure-08.out view
@@ -71,11 +71,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [❌(]), -  text(body: [16]), -  text(body: [ /= ]), -  text(body: [13]), -  text(body: [)]), -  parbreak() }+                 text(body: [❌(]), +                 text(body: [16]), +                 text(body: [ /= ]), +                 text(body: [13]), +                 text(body: [)]), +                 parbreak() })
test/out/compiler/color-00.out view
@@ -151,63 +151,63 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  stack(children: (rect(fill: cmyk(69%,11%,69%,41%), -                        width: 1.0cm), -                   rect(fill: cmyk(50%,64%,16%,17%), -                        width: 1.0cm), -                   rect(fill: cmyk(50%,36%,84%,17%), -                        width: 1.0cm)), -        dir: ltr, -        spacing: 1.0fr), -  parbreak(), -  box(body: square(fill: cmyk(50%,64%,16%,17%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(55%,67%,24%,25%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(60%,71%,32%,33%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(65%,74%,41%,41%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(70%,78%,49%,50%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(75%,82%,58%,58%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(80%,85%,66%,66%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(85%,89%,74%,75%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(90%,92%,83%,83%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(95%,96%,91%,91%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(100%,100%,100%,100%), -                   size: 9.0pt)), -  text(body: [+                 stack(children: (rect(fill: cmyk(69%,11%,69%,41%), +                                       width: 1.0cm), +                                  rect(fill: cmyk(50%,64%,16%,17%), +                                       width: 1.0cm), +                                  rect(fill: cmyk(50%,36%,84%,17%), +                                       width: 1.0cm)), +                       dir: ltr, +                       spacing: 1.0fr), +                 parbreak(), +                 box(body: square(fill: cmyk(50%,64%,16%,17%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(55%,67%,24%,25%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(60%,71%,32%,33%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(65%,74%,41%,41%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(70%,78%,49%,50%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(75%,82%,58%,58%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(80%,85%,66%,66%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(85%,89%,74%,75%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(90%,92%,83%,83%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(95%,96%,91%,91%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(100%,100%,100%,100%), +                                  size: 9.0pt)), +                 text(body: [ ]), -  box(body: square(fill: cmyk(50%,64%,16%,17%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(45%,57%,14%,15%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(40%,51%,12%,13%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(35%,44%,11%,11%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(30%,38%,9%,10%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(25%,32%,8%,8%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(20%,25%,6%,6%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(15%,19%,4%,5%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(10%,12%,3%,3%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(5%,6%,1%,1%), -                   size: 9.0pt)), -  box(body: square(fill: cmyk(0%,0%,0%,0%), -                   size: 9.0pt)), -  parbreak() }+                 box(body: square(fill: cmyk(50%,64%,16%,17%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(45%,57%,14%,15%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(40%,51%,12%,13%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(35%,44%,11%,11%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(30%,38%,9%,10%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(25%,32%,8%,8%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(20%,25%,6%,6%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(15%,19%,4%,5%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(10%,12%,3%,3%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(5%,6%,1%,1%), +                                  size: 9.0pt)), +                 box(body: square(fill: cmyk(0%,0%,0%,0%), +                                  size: 9.0pt)), +                 parbreak() })
test/out/compiler/color-01.out view
@@ -100,17 +100,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: [luma(64%)]), -  text(body: [ /= ]), -  text(body: [luma(63%)]), -  text(body: [)]), -  text(body: [+                 text(body: [❌(]), +                 text(body: [luma(64%)]), +                 text(body: [ /= ]), +                 text(body: [luma(63%)]), +                 text(body: [)]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/comment-00.out view
@@ -71,18 +71,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A]), -  text(body: [B]), -  parbreak(), -  text(body: [C]), -  text(body: [D]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 text(body: [A]), +                 text(body: [B]), +                 parbreak(), +                 text(body: [C]), +                 text(body: [D]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  parbreak(), -  text(body: [E]), -  parbreak() }+                 parbreak(), +                 text(body: [E]), +                 parbreak() })
test/out/compiler/construct-00.out view
@@ -63,12 +63,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  list(body-indent: 20.0pt, -       children: (text(body: [First]), -                  list(children: (text(body: [A]), -                                  text(body: [B]))))), -  parbreak() }+                 list(body-indent: 20.0pt, +                      children: (text(body: [First]), +                                 list(children: (text(body: [A]), +                                                 text(body: [B]))))), +                 parbreak() })
test/out/compiler/construct-01.out view
@@ -74,17 +74,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  list(children: ({ text(body: [+                 list(children: ({ text(body: [ ]), -                    rect(body: list(children: (text(body: [A])), -                                    marker: text(body: [>])), -                         fill: rgb(18%,80%,25%,100%), -                         inset: 4.0pt, -                         width: 2.0cm), -                    parbreak() }), -       marker: text(body: [–])), -  parbreak() }+                                   rect(body: list(children: (text(body: [A])), +                                                   marker: text(body: [>])), +                                        fill: rgb(18%,80%,25%,100%), +                                        inset: 4.0pt, +                                        width: 2.0cm), +                                   parbreak() }), +                      marker: text(body: [–])), +                 parbreak() })
test/out/compiler/construct-02.out view
@@ -69,10 +69,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: rect(body: rect(fill: rgb(100%,86%,0%,100%)), -                  fill: rgb(100%,86%,0%,100%), -                  inset: 5.0pt), -       size: 1.0em), -  parbreak() }+                 text(body: rect(body: rect(fill: rgb(100%,86%,0%,100%)), +                                 fill: rgb(100%,86%,0%,100%), +                                 inset: 5.0pt), +                      size: 1.0em), +                 parbreak() })
test/out/compiler/construct-03.out view
@@ -60,11 +60,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A ]), -  box(body: rect(body: rect(), -                 fill: rgb(100%,86%,0%,100%), -                 inset: 5.0pt)), -  text(body: [ B]), -  parbreak() }+                 text(body: [A ]), +                 box(body: rect(body: rect(), +                                fill: rgb(100%,86%,0%,100%), +                                inset: 5.0pt)), +                 text(body: [ B]), +                 parbreak() })
test/out/compiler/construct-04.out view
@@ -63,11 +63,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  enum(children: (text(body: [A]), -                  enum(children: (text(body: [B])))), -       numbering: "(a)"), -  parbreak() }+                 enum(children: (text(body: [A]), +                                 enum(children: (text(body: [B])))), +                      numbering: "(a)"), +                 parbreak() })
test/out/compiler/dict-00.out view
@@ -86,18 +86,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [()]), -  parbreak(), -  text(body: [+                 text(body: [()]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [(normal: 1, spacy key: 2)]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [(normal: 1, spacy key: 2)]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/dict-01.out view
@@ -121,10 +121,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/dict-03.out view
@@ -80,10 +80,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/dict-05.out view
@@ -161,26 +161,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [2]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [2]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/field-00.out view
@@ -79,12 +79,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/field-01.out view
@@ -69,7 +69,7 @@ , BulletListItem [ Text "C" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [✅]) }+                 parbreak(), +                 text(body: [✅]) })
test/out/compiler/field-02.out view
@@ -60,10 +60,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/compiler/for-00.out view
@@ -253,50 +253,50 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ ]), -  text(body: [Name]), -  text(body: [: ]), -  text(body: [Typst]), -  text(body: [.]), -  parbreak(), -  text(body: [+                 text(body: [Name]), +                 text(body: [: ]), +                 text(body: [Typst]), +                 text(body: [.]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [Age]), -  text(body: [: ]), -  text(body: [2]), -  text(body: [.]), -  parbreak(), -  parbreak(), -  text(body: [[]), -  text(body: [1]), -  text(body: [st]), -  text(body: [, ]), -  text(body: [2]), -  text(body: [nd]), -  text(body: [, ]), -  text(body: [3]), -  text(body: [rd]), -  text(body: [, ]), -  text(body: [4]), -  text(body: [th]), -  text(body: []]), -  parbreak(), -  text(body: [2]), -  text(body: [3]), -  text(body: [4]), -  text(body: [5]), -  parbreak(), -  text(body: [+                 text(body: [Age]), +                 text(body: [: ]), +                 text(body: [2]), +                 text(body: [.]), +                 parbreak(), +                 parbreak(), +                 text(body: [[]), +                 text(body: [1]), +                 text(body: [st]), +                 text(body: [, ]), +                 text(body: [2]), +                 text(body: [nd]), +                 text(body: [, ]), +                 text(body: [3]), +                 text(body: [rd]), +                 text(body: [, ]), +                 text(body: [4]), +                 text(body: [th]), +                 text(body: []]), +                 parbreak(), +                 text(body: [2]), +                 text(body: [3]), +                 text(body: [4]), +                 text(body: [5]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [1, "a": 2]), -  parbreak() }+                 text(body: [1, "a": 2]), +                 parbreak() })
test/out/compiler/for-01.out view
@@ -234,29 +234,29 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  parbreak(), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak(), -  parbreak(), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 parbreak(), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak(), +                 parbreak(), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  parbreak(), -  text(body: [❌(]), -  text(body: ["a, b, c, 👩, ‍, 👩, ‍, 👦, ‍, 👦"]), -  text(body: [ /= ]), -  text(body: ["a, b, c, 👩‍👩‍👦‍👦"]), -  text(body: [)]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 parbreak(), +                 text(body: [❌(]), +                 text(body: ["a, b, c, 👩, ‍, 👩, ‍, 👦, ‍, 👦"]), +                 text(body: [ /= ]), +                 text(body: ["a, b, c, 👩‍👩‍👦‍👦"]), +                 text(body: [)]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/highlight-00.out view
@@ -52,10 +52,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  raw(block: true, -      lang: "typ", -      text: "#set hello()\n#set hello()\n#set hello.world()\n#set hello.my.world()\n#let foo(x) = x * 2\n#show heading: func\n#show module.func: func\n#show module.func: it => {}\n#foo(ident: ident)\n#hello\n#hello()\n#box[]\n#hello.world\n#hello.world()\n#hello().world()\n#hello.my.world\n#hello.my.world()\n#hello.my().world\n#hello.my().world()\n#{ hello }\n#{ hello() }\n#{ hello.world() }\n$ hello $\n$ hello() $\n$ box[] $\n$ hello.world $\n$ hello.world() $\n$ hello.my.world() $\n$ f_zeta(x), f_zeta(x)/1 $\n$ emph(hello.my.world()) $\n$ emph(hello.my().world) $\n$ emph(hello.my().world()) $\n$ #hello $\n$ #hello() $\n$ #hello.world $\n$ #hello.world() $\n$ #box[] $\n#if foo []\n"), -  parbreak() }+                 parbreak(), +                 raw(block: true, +                     lang: "typ", +                     text: "#set hello()\n#set hello()\n#set hello.world()\n#set hello.my.world()\n#let foo(x) = x * 2\n#show heading: func\n#show module.func: func\n#show module.func: it => {}\n#foo(ident: ident)\n#hello\n#hello()\n#box[]\n#hello.world\n#hello.world()\n#hello().world()\n#hello.my.world\n#hello.my.world()\n#hello.my().world\n#hello.my().world()\n#{ hello }\n#{ hello() }\n#{ hello.world() }\n$ hello $\n$ hello() $\n$ box[] $\n$ hello.world $\n$ hello.world() $\n$ hello.my.world() $\n$ f_zeta(x), f_zeta(x)/1 $\n$ emph(hello.my.world()) $\n$ emph(hello.my().world) $\n$ emph(hello.my().world()) $\n$ #hello $\n$ #hello() $\n$ #hello.world $\n$ #hello.world() $\n$ #box[] $\n#if foo []\n"), +                 parbreak() })
test/out/compiler/if-00.out view
@@ -73,10 +73,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ One.]), -  parbreak(), -  parbreak(), -  parbreak() }+                 parbreak(), +                 parbreak(), +                 parbreak() })
test/out/compiler/if-01.out view
@@ -138,26 +138,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ One.]), -  parbreak(), -  parbreak(), -  text(body: [+                 parbreak(), +                 parbreak(), +                 text(body: [ Two.]), -  parbreak(), -  parbreak(), -  text(body: [Three.]), -  parbreak(), -  text(body: [Four.]), -  parbreak(), -  text(body: [Fi]), -  text(body: [ve.]), -  parbreak(), -  text(body: [+                 parbreak(), +                 parbreak(), +                 text(body: [Three.]), +                 parbreak(), +                 text(body: [Four.]), +                 parbreak(), +                 text(body: [Fi]), +                 text(body: [ve.]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ Six.]), -  parbreak(), -  parbreak() }+                 parbreak(), +                 parbreak() })
test/out/compiler/if-02.out view
@@ -125,22 +125,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/if-03.out view
@@ -91,11 +91,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/import-00.out view
@@ -84,19 +84,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ ]), -  rect(body: text(body: [Like and Subscribe!]), -       fill: rgb(18%,80%,25%,100%), -       inset: 5.0pt), -  text(body: [+                 rect(body: text(body: [Like and Subscribe!]), +                      fill: rgb(18%,80%,25%,100%), +                      inset: 5.0pt), +                 text(body: [ ]), -  text(body: [hi]), -  parbreak(), -  text(body: [bye]), -  parbreak() }+                 text(body: [hi]), +                 parbreak(), +                 text(body: [bye]), +                 parbreak() })
test/out/compiler/import-01.out view
@@ -99,17 +99,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [{+                 text(body: [✅]), +                 parbreak(), +                 text(body: [{ import “module.typ”: b test(b, 1) }]), -  parbreak(), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 parbreak(), +                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/import-02.out view
@@ -90,19 +90,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  enum(children: (enum.item(body: text(body: [First]), -                            number: 1), -                  enum.item(body: text(body: [Fifth]), -                            number: 5))), -  text(body: [+                 parbreak(), +                 enum(children: (enum.item(body: text(body: [First]), +                                           number: 1), +                                 enum.item(body: text(body: [Fifth]), +                                           number: 5))), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/compiler/import-03.out view
@@ -84,15 +84,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/import-05.out view
@@ -55,7 +55,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  parbreak() }+                 parbreak(), +                 parbreak() })
test/out/compiler/import-06.out view
@@ -75,15 +75,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  enum.item(body: text(body: [a]), -            number: 2), -  parbreak() }+                 parbreak(), +                 enum.item(body: text(body: [a]), +                           number: 2), +                 parbreak() })
test/out/compiler/include-00.out view
@@ -77,46 +77,46 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Document]), -          level: 1), -  text(body: [+                 parbreak(), +                 heading(body: text(body: [Document]), +                         level: 1), +                 text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Chapter 1]), -          level: 2), -  text(body: [Klaus]), -  text(body: [ stood in a field of wheat. There was nothing of particular interest about+                 parbreak(), +                 heading(body: text(body: [Chapter 1]), +                         level: 2), +                 text(body: [Klaus]), +                 text(body: [ stood in a field of wheat. There was nothing of particular interest about the field ]), -  text(body: [Klaus]), -  text(body: [ just casually surveyed for any paths on which the corn would not+                 text(body: [Klaus]), +                 text(body: [ just casually surveyed for any paths on which the corn would not totally ruin his semi-new outdorsy jacket but then again, most of us spend considerable time in non-descript environments.]), -  parbreak(), -  parbreak(), -  parbreak(), -  text(body: [– ]), -  emph(body: text(body: [Intermission])), -  text(body: [ –+                 parbreak(), +                 parbreak(), +                 parbreak(), +                 text(body: [– ]), +                 emph(body: text(body: [Intermission])), +                 text(body: [ – ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Chapter 2]), -          level: 2), -  text(body: [Their motivations, however, were pretty descript, so to speak. ]), -  text(body: [Klaus]), -  text(body: [ had not yet+                 parbreak(), +                 heading(body: text(body: [Chapter 2]), +                         level: 2), +                 text(body: [Their motivations, however, were pretty descript, so to speak. ]), +                 text(body: [Klaus]), +                 text(body: [ had not yet conceptualized their consequences, but that should change pretty quickly. ]), -  text(body: [Klaus]), -  text(body: [+                 text(body: [Klaus]), +                 text(body: [ approached the center of the field and picked up a 4-foot long disk made from what could only be cow manure. The hair on the back of ]), -  text(body: [Klaus]), -  text(body: [” neck bristled as+                 text(body: [Klaus]), +                 text(body: [” neck bristled as he stared at the unusual sight. After studying the object for a while, he promptly popped the question, “How much?”]), -  parbreak(), -  parbreak() }+                 parbreak(), +                 parbreak() })
test/out/compiler/label-00.out view
@@ -79,18 +79,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Introduction]), -          level: 1), -  <intro>, -  text(body: [+                 parbreak(), +                 heading(body: text(body: [Introduction]), +                         level: 1), +                 <intro>, +                 text(body: [ The beginning.]), -  parbreak(), -  heading(body: text(body: [Conclusion]), -          level: 1), -  text(body: [The end.]), -  parbreak() }+                 parbreak(), +                 heading(body: text(body: [Conclusion]), +                         level: 1), +                 text(body: [The end.]), +                 parbreak() })
test/out/compiler/label-01.out view
@@ -82,16 +82,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  strong(body: text(body: [A])), -  text(body: [ ]), -  <v>, -  text(body: [ ]), -  strong(body: text(body: [B])), -  parbreak() }+                 strong(body: text(body: [A])), +                 text(body: [ ]), +                 <v>, +                 text(body: [ ]), +                 strong(body: text(body: [B])), +                 parbreak() })
test/out/compiler/label-02.out view
@@ -92,11 +92,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [This is a thing ]), -  text(body: [that ]), -  <last>, -  text(body: [ happened.]), -  parbreak() }+                 parbreak(), +                 text(body: [This is a thing ]), +                 text(body: [that ]), +                 <last>, +                 text(body: [ happened.]), +                 parbreak() })
test/out/compiler/label-03.out view
@@ -81,20 +81,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  strong(body: text(body: [A])), -  text(body: [ ]), -  strong(body: text(body: [B])), -  text(body: [ ]), -  <red>, -  text(body: [ ]), -  strong(body: text(body: [C])), -  text(body: [ ]), -  <blue>, -  text(body: [ ]), -  strong(body: text(body: [D])), -  parbreak() }+                 parbreak(), +                 strong(body: text(body: [A])), +                 text(body: [ ]), +                 strong(body: text(body: [B])), +                 text(body: [ ]), +                 <red>, +                 text(body: [ ]), +                 strong(body: text(body: [C])), +                 text(body: [ ]), +                 <blue>, +                 text(body: [ ]), +                 strong(body: text(body: [D])), +                 parbreak() })
test/out/compiler/label-04.out view
@@ -63,18 +63,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  emph(body: text(body: [Hidden])), -  text(body: [+                 parbreak(), +                 emph(body: text(body: [Hidden])), +                 text(body: [ ]), -  <hide>, -  parbreak(), -  emph(body: text(body: [Hidden])), -  parbreak(), -  <hide>, -  text(body: [+                 <hide>, +                 parbreak(), +                 emph(body: text(body: [Hidden])), +                 parbreak(), +                 <hide>, +                 text(body: [ ]), -  emph(body: text(body: [Visible])), -  parbreak() }+                 emph(body: text(body: [Visible])), +                 parbreak() })
test/out/compiler/label-05.out view
@@ -70,18 +70,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  strong(body: text(body: [This is])), -  text(body: [ ]), -  <strike>, -  text(body: [ ]), -  strong(body: text(body: [protected.])), -  text(body: [+                 strong(body: text(body: [This is])), +                 text(body: [ ]), +                 <strike>, +                 text(body: [ ]), +                 strong(body: text(body: [protected.])), +                 text(body: [ ]), -  strong(body: text(body: [This is not.])), -  text(body: [ ]), -  <strike>, -  parbreak() }+                 strong(body: text(body: [This is not.])), +                 text(body: [ ]), +                 <strike>, +                 parbreak() })
test/out/compiler/label-06.out view
@@ -64,9 +64,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [1 < 2 is ]), -  text(body: [not]), -  text(body: [ a label.]), -  parbreak() }+                 text(body: [1 < 2 is ]), +                 text(body: [not]), +                 text(body: [ a label.]), +                 parbreak() })
test/out/compiler/let-00.out view
@@ -96,22 +96,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  rect(body: text(body: [Hi!]), -       fill: rgb(18%,80%,25%,100%), -       inset: 5.0pt, -       width: 2.0cm), -  parbreak() }+                 rect(body: text(body: [Hi!]), +                      fill: rgb(18%,80%,25%,100%), +                      inset: 5.0pt, +                      width: 2.0cm), +                 parbreak() })
test/out/compiler/let-01.out view
@@ -94,23 +94,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ One]), -  parbreak(), -  text(body: [ Two]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ Two]), +                 parbreak(), +                 text(body: [ Three]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-02.out view
@@ -50,6 +50,6 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/compiler/let-03.out view
@@ -71,12 +71,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-04.out view
@@ -58,9 +58,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-05.out view
@@ -78,12 +78,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-06.out view
@@ -94,15 +94,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-07.out view
@@ -94,15 +94,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-08.out view
@@ -79,15 +79,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-09.out view
@@ -79,15 +79,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-10.out view
@@ -79,15 +79,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-11.out view
@@ -56,9 +56,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-16.out view
@@ -85,15 +85,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-17.out view
@@ -70,9 +70,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-18.out view
@@ -67,9 +67,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-19.out view
@@ -60,9 +60,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-20.out view
@@ -56,9 +56,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/let-21.out view
@@ -63,9 +63,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/methods-00.out view
@@ -57,7 +57,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/methods-01.out view
@@ -92,7 +92,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/methods-02.out view
@@ -95,7 +95,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/module.out view
@@ -106,26 +106,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Some ]), -  emph(body: text(body: [includable])), -  text(body: [ text.]), -  parbreak() }+                 parbreak(), +                 text(body: [Some ]), +                 emph(body: text(body: [includable])), +                 text(body: [ text.]), +                 parbreak() })
test/out/compiler/modules/chap1.out view
@@ -156,18 +156,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Chapter 1]), -          level: 2), -  text(body: [Klaus]), -  text(body: [ stood in a field of wheat. There was nothing of particular interest about+                 parbreak(), +                 heading(body: text(body: [Chapter 1]), +                         level: 2), +                 text(body: [Klaus]), +                 text(body: [ stood in a field of wheat. There was nothing of particular interest about the field ]), -  text(body: [Klaus]), -  text(body: [ just casually surveyed for any paths on which the corn would not+                 text(body: [Klaus]), +                 text(body: [ just casually surveyed for any paths on which the corn would not totally ruin his semi-new outdorsy jacket but then again, most of us spend considerable time in non-descript environments.]), -  parbreak() }+                 parbreak() })
test/out/compiler/modules/chap2.out view
@@ -216,23 +216,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Chapter 2]), -          level: 2), -  text(body: [Their motivations, however, were pretty descript, so to speak. ]), -  text(body: [Klaus]), -  text(body: [ had not yet+                 parbreak(), +                 heading(body: text(body: [Chapter 2]), +                         level: 2), +                 text(body: [Their motivations, however, were pretty descript, so to speak. ]), +                 text(body: [Klaus]), +                 text(body: [ had not yet conceptualized their consequences, but that should change pretty quickly. ]), -  text(body: [Klaus]), -  text(body: [+                 text(body: [Klaus]), +                 text(body: [ approached the center of the field and picked up a 4-foot long disk made from what could only be cow manure. The hair on the back of ]), -  text(body: [Klaus]), -  text(body: [” neck bristled as+                 text(body: [Klaus]), +                 text(body: [” neck bristled as he stared at the unusual sight. After studying the object for a while, he promptly popped the question, “How much?”]), -  parbreak() }+                 parbreak() })
test/out/compiler/ops-00.out view
@@ -50,9 +50,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  strong(body: text(body: [Hello])), -  text(body: [ ]), -  text(body: [world!]), -  parbreak() }+                 strong(body: text(body: [Hello])), +                 text(body: [ ]), +                 text(body: [world!]), +                 parbreak() })
test/out/compiler/ops-01.out view
@@ -194,58 +194,58 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-03.out view
@@ -425,265 +425,265 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: [1.0]), -  text(body: [ /= ]), -  text(body: [99.99]), -  text(body: [)]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [❌(]), +                 text(body: [1.0]), +                 text(body: [ /= ]), +                 text(body: [99.99]), +                 text(body: [)]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  parbreak(), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [❌(]), -  text(body: [((12.0pt + 3.0em) + (12.0pt + 3.0em)) + (-12.0pt + -3.0em)]), -  text(body: [ /= ]), -  text(body: [12.0pt + 3.0em]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [((12.0pt + 3.0em) + (-12.0pt + -3.0em)) + (-12.0pt + -3.0em)]), -  text(body: [ /= ]), -  text(body: [-12.0pt + -3.0em]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [(12.0pt + 3.0em) + (-12.0pt + -3.0em)]), -  text(body: [ /= ]), -  text(body: [0.0pt + 0.0em]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [(12.0pt + 3.0em) + (12.0pt + 3.0em)]), -  text(body: [ /= ]), -  text(body: [24.0pt + 6.0em]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [(12.0pt + 3.0em) + (12.0pt + 3.0em)]), -  text(body: [ /= ]), -  text(body: [24.0pt + 6.0em]), -  text(body: [)]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [❌(]), -  text(body: [((10.0pt + 13%) + (10.0pt + 13%)) + (-10.0pt + -13%)]), -  text(body: [ /= ]), -  text(body: [10.0pt + 13%]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [((10.0pt + 13%) + (-10.0pt + -13%)) + (-10.0pt + -13%)]), -  text(body: [ /= ]), -  text(body: [-10.0pt + -13%]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [(10.0pt + 13%) + (-10.0pt + -13%)]), -  text(body: [ /= ]), -  text(body: [0.0pt + 0%]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [(10.0pt + 13%) + (10.0pt + 13%)]), -  text(body: [ /= ]), -  text(body: [20.0pt + 26%]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [(10.0pt + 13%) + (10.0pt + 13%)]), -  text(body: [ /= ]), -  text(body: [20.0pt + 26%]), -  text(body: [)]), -  text(body: [✅]), -  text(body: [❌(]), -  text(body: [(((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)) + ((-1.0em + -5%) + -3.0pt)]), -  text(body: [ /= ]), -  text(body: [(1.0em + 5%) + 3.0pt]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [(((1.0em + 5%) + 3.0pt) + ((-1.0em + -5%) + -3.0pt)) + ((-1.0em + -5%) + -3.0pt)]), -  text(body: [ /= ]), -  text(body: [(-1.0em + -5%) + -3.0pt]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [((1.0em + 5%) + 3.0pt) + ((-1.0em + -5%) + -3.0pt)]), -  text(body: [ /= ]), -  text(body: [(0.0em + 0%) + 0.0pt]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)]), -  text(body: [ /= ]), -  text(body: [(2.0em + 10%) + 6.0pt]), -  text(body: [)]), -  text(body: [❌(]), -  text(body: [((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)]), -  text(body: [ /= ]), -  text(body: [(2.0em + 10%) + 6.0pt]), -  text(body: [)]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [❌(]), -  text(body: [1.0fr]), -  text(body: [ /= ]), -  text(body: [1.0]), -  text(body: [)]), -  parbreak(), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [❌(]), +                 text(body: [((12.0pt + 3.0em) + (12.0pt + 3.0em)) + (-12.0pt + -3.0em)]), +                 text(body: [ /= ]), +                 text(body: [12.0pt + 3.0em]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [((12.0pt + 3.0em) + (-12.0pt + -3.0em)) + (-12.0pt + -3.0em)]), +                 text(body: [ /= ]), +                 text(body: [-12.0pt + -3.0em]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [(12.0pt + 3.0em) + (-12.0pt + -3.0em)]), +                 text(body: [ /= ]), +                 text(body: [0.0pt + 0.0em]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [(12.0pt + 3.0em) + (12.0pt + 3.0em)]), +                 text(body: [ /= ]), +                 text(body: [24.0pt + 6.0em]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [(12.0pt + 3.0em) + (12.0pt + 3.0em)]), +                 text(body: [ /= ]), +                 text(body: [24.0pt + 6.0em]), +                 text(body: [)]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [❌(]), +                 text(body: [((10.0pt + 13%) + (10.0pt + 13%)) + (-10.0pt + -13%)]), +                 text(body: [ /= ]), +                 text(body: [10.0pt + 13%]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [((10.0pt + 13%) + (-10.0pt + -13%)) + (-10.0pt + -13%)]), +                 text(body: [ /= ]), +                 text(body: [-10.0pt + -13%]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [(10.0pt + 13%) + (-10.0pt + -13%)]), +                 text(body: [ /= ]), +                 text(body: [0.0pt + 0%]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [(10.0pt + 13%) + (10.0pt + 13%)]), +                 text(body: [ /= ]), +                 text(body: [20.0pt + 26%]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [(10.0pt + 13%) + (10.0pt + 13%)]), +                 text(body: [ /= ]), +                 text(body: [20.0pt + 26%]), +                 text(body: [)]), +                 text(body: [✅]), +                 text(body: [❌(]), +                 text(body: [(((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)) + ((-1.0em + -5%) + -3.0pt)]), +                 text(body: [ /= ]), +                 text(body: [(1.0em + 5%) + 3.0pt]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [(((1.0em + 5%) + 3.0pt) + ((-1.0em + -5%) + -3.0pt)) + ((-1.0em + -5%) + -3.0pt)]), +                 text(body: [ /= ]), +                 text(body: [(-1.0em + -5%) + -3.0pt]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [((1.0em + 5%) + 3.0pt) + ((-1.0em + -5%) + -3.0pt)]), +                 text(body: [ /= ]), +                 text(body: [(0.0em + 0%) + 0.0pt]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)]), +                 text(body: [ /= ]), +                 text(body: [(2.0em + 10%) + 6.0pt]), +                 text(body: [)]), +                 text(body: [❌(]), +                 text(body: [((1.0em + 5%) + 3.0pt) + ((1.0em + 5%) + 3.0pt)]), +                 text(body: [ /= ]), +                 text(body: [(2.0em + 10%) + 6.0pt]), +                 text(body: [)]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [❌(]), +                 text(body: [1.0fr]), +                 text(body: [ /= ]), +                 text(body: [1.0]), +                 text(body: [)]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [❌(]), -  text(body: [200%]), -  text(body: [ /= ]), -  text(body: [2]), -  text(body: [)]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [❌(]), -  text(body: [200%]), -  text(body: [ /= ]), -  text(body: [2]), -  text(body: [)]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [❌(]), +                 text(body: [200%]), +                 text(body: [ /= ]), +                 text(body: [2]), +                 text(body: [)]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [❌(]), +                 text(body: [200%]), +                 text(body: [ /= ]), +                 text(body: [2]), +                 text(body: [)]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-04.out view
@@ -65,13 +65,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-07.out view
@@ -161,39 +161,39 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-08.out view
@@ -261,64 +261,64 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [❌(]), -  text(body: [false]), -  text(body: [ /= ]), -  text(body: [true]), -  text(body: [)]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [❌(]), +                 text(body: [false]), +                 text(body: [ /= ]), +                 text(body: [true]), +                 text(body: [)]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-09.out view
@@ -146,36 +146,36 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-10.out view
@@ -159,36 +159,36 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [ ]), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [ ]), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [ ]), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [ ]), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [ ]), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [ ]), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [ ]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-13.out view
@@ -172,37 +172,37 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-15.out view
@@ -177,31 +177,31 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-assoc-00.out view
@@ -81,13 +81,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-assoc-01.out view
@@ -89,13 +89,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [{+                 text(body: [{ let x = 1 let y = 2 x = y = “ok” test(x, none) test(y, “ok”) }]), -  parbreak() }+                 parbreak() })
test/out/compiler/ops-invalid-29.out view
@@ -55,8 +55,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/compiler/ops-prec-00.out view
@@ -89,14 +89,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/ops-prec-03.out view
@@ -59,7 +59,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/recursion-00.out view
@@ -80,8 +80,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/recursion-02.out view
@@ -64,11 +64,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/recursion-03.out view
@@ -66,11 +66,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/recursion-05.out view
@@ -76,11 +76,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/repr-00.out view
@@ -68,15 +68,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [auto]), -  text(body: [ ]), -  linebreak(), -  text(body: [ (empty) ]), -  linebreak(), -  text(body: [true]), -  text(body: [ ]), -  linebreak(), -  text(body: [false]), -  parbreak() }+                 text(body: [auto]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ (empty) ]), +                 linebreak(), +                 text(body: [true]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [false]), +                 parbreak() })
test/out/compiler/repr-01.out view
@@ -118,39 +118,39 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [1]), -  text(body: [ ]), -  linebreak(), -  text(body: [1.0e-4]), -  text(body: [ ]), -  linebreak(), -  text(body: [3.15]), -  text(body: [ ]), -  linebreak(), -  text(body: [1.0e-10]), -  text(body: [ ]), -  linebreak(), -  text(body: [50%]), -  linebreak(), -  text(body: [1.2345e-6pt]), -  linebreak(), -  text(body: [4.5cm]), -  linebreak(), -  text(body: [120.0pt]), -  linebreak(), -  text(body: [143.2394487827058deg]), -  linebreak(), -  text(body: [45.0deg]), -  linebreak(), -  text(body: [1.7em]), -  linebreak(), -  text(body: [1.0cm]), -  text(body: [ ]), -  linebreak(), -  text(body: [2.0em + 10.0pt]), -  text(body: [ ]), -  linebreak(), -  text(body: [2.3fr]), -  parbreak() }+                 text(body: [1]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [1.0e-4]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [3.15]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [1.0e-10]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [50%]), +                 linebreak(), +                 text(body: [1.2345e-6pt]), +                 linebreak(), +                 text(body: [4.5cm]), +                 linebreak(), +                 text(body: [120.0pt]), +                 linebreak(), +                 text(body: [143.2394487827058deg]), +                 linebreak(), +                 text(body: [45.0deg]), +                 linebreak(), +                 text(body: [1.7em]), +                 linebreak(), +                 text(body: [1.0cm]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [2.0em + 10.0pt]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [2.3fr]), +                 parbreak() })
test/out/compiler/repr-02.out view
@@ -123,35 +123,35 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], size: 0.8em), -  text(body: [rgb(96%,63%,1%,100%)], -       size: 0.8em), -  text(body: [ ], size: 0.8em), -  linebreak(), -  text(body: [(thickness: 2.0pt,+                 text(body: [rgb(96%,63%,1%,100%)], +                      size: 0.8em), +                 text(body: [ ], size: 0.8em), +                 linebreak(), +                 text(body: [(thickness: 2.0pt,  color: rgb(96%,63%,1%,100%))], -       size: 0.8em), -  parbreak(), -  raw(lang: "typc", -      text: "\"hi\""), -  text(body: [+                      size: 0.8em), +                 parbreak(), +                 raw(lang: "typc", +                     text: "\"hi\""), +                 text(body: [ ], size: 0.8em), -  text(body: ["a\n[]\"🚀string"], -       size: 0.8em), -  parbreak(), -  raw(lang: "typc", -      text: "strong(body: text(body: [Hey], \n                  size: 0.8em))"), -  parbreak(), -  text(body: [Nothing+                 text(body: ["a\n[]\"🚀string"], +                      size: 0.8em), +                 parbreak(), +                 raw(lang: "typc", +                     text: "strong(body: text(body: [Hey], \n                  size: 0.8em))"), +                 parbreak(), +                 text(body: [Nothing ], -       size: 0.8em), -  text(body: [+                      size: 0.8em), +                 text(body: [ ], size: 0.8em), -  text(body: [+                 text(body: [ ], size: 0.8em), -  text(body: [+                 text(body: [ ], size: 0.8em), -  parbreak() }+                 parbreak() })
test/out/compiler/return-00.out view
@@ -63,8 +63,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/return-01.out view
@@ -97,16 +97,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/return-04.out view
@@ -93,9 +93,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 parbreak(), +                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/return-05.out view
@@ -78,20 +78,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [❌(]), -  text(body: [{ text(body: [+                 parbreak(), +                 text(body: [❌(]), +                 text(body: [{ text(body: [ Hello 😀 ]),    text(body: [nope]),    text(body: [ World]),    parbreak() }]), -  text(body: [ /= ]), -  text(body: ["nope"]), -  text(body: [)]), -  parbreak() }+                 text(body: [ /= ]), +                 text(body: ["nope"]), +                 text(body: [)]), +                 parbreak() })
test/out/compiler/set-00.out view
@@ -58,9 +58,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Hello ]), -  strong(body: text(body: [World])), -  parbreak() }+                 strong(body: text(body: [World])), +                 parbreak() })
test/out/compiler/set-01.out view
@@ -93,21 +93,21 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  list(children: (text(body: [Fruit]))), -  text(body: [+                 parbreak(), +                 list(children: (text(body: [Fruit]))), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  list(children: (text(body: [Apple]), -                  text(body: [Orange]))), -  list(body-indent: 20.0pt, -       children: (text(body: [Pear]))), -  parbreak(), -  text(body: [+                 list(children: (text(body: [Apple]), +                                 text(body: [Orange]))), +                 list(body-indent: 20.0pt, +                      children: (text(body: [Pear]))), +                 parbreak(), +                 text(body: [ ]), -  list(children: ({ text(body: [No more fruit]), -                    parbreak() }), -       indent: 10.0pt) }+                 list(children: ({ text(body: [No more fruit]), +                                   parbreak() }), +                      indent: 10.0pt) })
test/out/compiler/set-02.out view
@@ -91,25 +91,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       fill: rgb(13%,61%,67%,100%), -       style: "italic"), -  text(body: [+                      fill: rgb(13%,61%,67%,100%), +                      style: "italic"), +                 text(body: [ ], -       fill: rgb(13%,61%,67%,100%), -       style: "italic"), -  text(body: { text(body: [And the red ], -                    fill: rgb(13%,61%,67%,100%), -                    style: "italic"), -               parbreak(), -               text(body: [ lay silent!], -                    fill: rgb(13%,61%,67%,100%), -                    style: "italic") }, -       fill: rgb(100%,25%,21%,100%), -       style: "italic"), -  parbreak() }+                      fill: rgb(13%,61%,67%,100%), +                      style: "italic"), +                 text(body: { text(body: [And the red ], +                                   fill: rgb(13%,61%,67%,100%), +                                   style: "italic"), +                              parbreak(), +                              text(body: [ lay silent!], +                                   fill: rgb(13%,61%,67%,100%), +                                   style: "italic") }, +                      fill: rgb(100%,25%,21%,100%), +                      style: "italic"), +                 parbreak() })
test/out/compiler/set-03.out view
@@ -61,9 +61,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Blue ], -       color: rgb(0%,45%,85%,100%)), -  text(body: [Not blue]), -  parbreak() }+                 text(body: [Blue ], +                      color: rgb(0%,45%,85%,100%)), +                 text(body: [Not blue]), +                 parbreak() })
test/out/compiler/set-04.out view
@@ -91,13 +91,13 @@ , EnumListItem Nothing [ Text "Tiger" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  enum(children: (text(body: [Monkey]), -                  text(body: [Rhino]), -                  { text(body: [Tiger]), -                    parbreak() }), -       numbering: ) }+                 parbreak(), +                 enum(children: (text(body: [Monkey]), +                                 text(body: [Rhino]), +                                 { text(body: [Tiger]), +                                   parbreak() }), +                      numbering: ) })
test/out/compiler/set-05.out view
@@ -79,10 +79,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [@]), -  text(body: [ from the ]), -  text(body: [@]), -  parbreak() }+                 parbreak(), +                 text(body: [@<hello>]), +                 text(body: [ from the ]), +                 text(body: [@<unknown>]), +                 parbreak() })
test/out/compiler/shorthand-00.out view
@@ -54,6 +54,6 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ The non-breaking space does work.]), -  parbreak() }+                 parbreak() })
test/out/compiler/shorthand-01.out view
@@ -62,12 +62,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ a b ], -       font: "New Computer Modern"), -  linebreak(), -  text(body: [a b], -       font: "New Computer Modern"), -  parbreak() }+                      font: "New Computer Modern"), +                 linebreak(), +                 text(body: [a b], +                      font: "New Computer Modern"), +                 parbreak() })
test/out/compiler/shorthand-02.out view
@@ -53,8 +53,8 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  list(children: (text(body: [En dash: –]), -                  { text(body: [Em dash: —]), -                    parbreak() })) }+                 list(children: (text(body: [En dash: –]), +                                 { text(body: [Em dash: —]), +                                   parbreak() })) })
test/out/compiler/shorthand-03.out view
@@ -58,11 +58,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ A… vs ], -       font: "Roboto"), -  text(body: [A...], -       font: "Roboto"), -  parbreak() }+                      font: "Roboto"), +                 text(body: [A...], +                      font: "Roboto"), +                 parbreak() })
test/out/compiler/show-bare-00.out view
@@ -166,28 +166,29 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  align(alignment: center, -        body: { text(body: [+                 parbreak(), +                 align(alignment: center, +                       body: { text(body: [ ], -                     size: 0.7em), -                text(body: strong(body: text(body: [Essay on typography], -                                             size: 0.7em)), -                     size: 1.3em), -                text(body: [ ], size: 0.7em), -                linebreak(), -                text(body: [T. Ypst], -                     size: 0.7em), -                parbreak() }), -  parbreak(), -  columns(body: { text(body: [+                                    size: 0.7em), +                               text(body: strong(body: text(body: [Essay on typography], +                                                            size: 0.7em)), +                                    size: 1.3em), +                               text(body: [ ], +                                    size: 0.7em), +                               linebreak(), +                               text(body: [T. Ypst], +                                    size: 0.7em), +                               parbreak() }), +                 parbreak(), +                 columns(body: { text(body: [ Great typography is at the essence of great storytelling. It is the medium that transports meaning from parchment to reader, the wave that sparks a flame in booklovers and the great fulfiller of human need.], -                       size: 0.7em), -                  parbreak() }, -          count: 2) }+                                      size: 0.7em), +                                 parbreak() }, +                         count: 2) })
test/out/compiler/show-bare-01.out view
@@ -75,10 +75,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A ]), -  emph(body: { text(body: [B ]), -               strong(body: text(body: [ C])) }), -  text(body: [ D]), -  parbreak() }+                 text(body: [A ]), +                 emph(body: { text(body: [B ]), +                              strong(body: text(body: [ C])) }), +                 text(body: [ D]), +                 parbreak() })
test/out/compiler/show-bare-02.out view
@@ -63,15 +63,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       fill: rgb(13%,61%,67%,100%), -       size: 1.5em), -  text(body: { text(body: [+                      fill: rgb(13%,61%,67%,100%), +                      size: 1.5em), +                 text(body: { text(body: [ Forest], -                    fill: rgb(13%,61%,67%,100%), -                    size: 1.5em), -               parbreak() }, -       fill: rgb(100%,25%,21%,100%)) }+                                   fill: rgb(13%,61%,67%,100%), +                                   size: 1.5em), +                              parbreak() }, +                      fill: rgb(100%,25%,21%,100%)) })
test/out/compiler/show-bare-03.out view
@@ -48,6 +48,6 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Shown]) }+                 text(body: [Shown]) })
test/out/compiler/show-node-01.out view
@@ -69,13 +69,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ A ]), -  heading(body: text(body: [Heading]), -          level: 1), -  text(body: [ C]), -  parbreak() }+                 heading(body: text(body: [Heading]), +                         level: 1), +                 text(body: [ C]), +                 parbreak() })
test/out/compiler/show-node-02.out view
@@ -69,10 +69,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Where is+                 parbreak(), +                 text(body: [Where is ]), -  text(body: [my heading?]), -  parbreak() }+                 text(body: [my heading?]), +                 parbreak() })
test/out/compiler/show-node-03.out view
@@ -127,33 +127,33 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  block(body: { box(body: move(body: text(body: [📖], -                                          size: 10.0pt), -                               dy: -1.0pt)), -                h(amount: 5.0pt), -                underline(body: text(body: text(body: [Task 1]), -                                     color: rgb(0%,45%,85%,100%), -                                     size: 1.25em)) }), -  text(body: [Some text.]), -  parbreak(), -  block(body: { box(body: move(body: text(body: [📖], -                                          size: 10.0pt), -                               dy: -1.0pt)), -                h(amount: 5.0pt), -                text(body: text(body: [Subtask]), -                     color: rgb(100%,25%,21%,100%), -                     size: 10.0pt) }), -  text(body: [Some more text.]), -  parbreak(), -  block(body: { box(body: move(body: text(body: [📖], -                                          size: 10.0pt), -                               dy: -1.0pt)), -                h(amount: 5.0pt), -                underline(body: text(body: text(body: [Task 2]), -                                     color: rgb(0%,45%,85%,100%), -                                     size: 1.25em)) }), -  text(body: [Another text.]), -  parbreak() }+                 parbreak(), +                 block(body: { box(body: move(body: text(body: [📖], +                                                         size: 10.0pt), +                                              dy: -1.0pt)), +                               h(amount: 5.0pt), +                               underline(body: text(body: text(body: [Task 1]), +                                                    color: rgb(0%,45%,85%,100%), +                                                    size: 1.25em)) }), +                 text(body: [Some text.]), +                 parbreak(), +                 block(body: { box(body: move(body: text(body: [📖], +                                                         size: 10.0pt), +                                              dy: -1.0pt)), +                               h(amount: 5.0pt), +                               text(body: text(body: [Subtask]), +                                    color: rgb(100%,25%,21%,100%), +                                    size: 10.0pt) }), +                 text(body: [Some more text.]), +                 parbreak(), +                 block(body: { box(body: move(body: text(body: [📖], +                                                         size: 10.0pt), +                                              dy: -1.0pt)), +                               h(amount: 5.0pt), +                               underline(body: text(body: text(body: [Task 2]), +                                                    color: rgb(0%,45%,85%,100%), +                                                    size: 1.25em)) }), +                 text(body: [Another text.]), +                 parbreak() })
test/out/compiler/show-node-04.out view
@@ -61,7 +61,7 @@ , Heading 1 [ Text "Heading" ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Heading]) }+                 parbreak(), +                 text(body: [Heading]) })
test/out/compiler/show-node-05.out view
@@ -71,15 +71,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: { [ ], -               strong(body: [W]), -               [orld ] }), -  parbreak(), -  text(body: { [ ], -               strong(body: [W]), -               [orld ] }), -  text(body: { [ ], -               strong(body: [W]), -               [orld ] }) }+                 text(body: { [ ], +                              strong(body: [W]), +                              [orld ] }), +                 parbreak(), +                 text(body: { [ ], +                              strong(body: [W]), +                              [orld ] }), +                 text(body: { [ ], +                              strong(body: [W]), +                              [orld ] }) })
test/out/compiler/show-node-06.out view
@@ -49,8 +49,8 @@ , Heading 1 [ Text "Heading" ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [1234]) }+                 text(body: [1234]) })
test/out/compiler/show-node-08.out view
@@ -48,8 +48,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Hey]), -  parbreak() }+                 parbreak() })
test/out/compiler/show-recursive-00.out view
@@ -51,9 +51,9 @@ , Heading 1 [ Text "Heading" ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  heading(body: text(body: [Heading]), -          level: 1) }+                 heading(body: text(body: [Heading]), +                         level: 1) })
test/out/compiler/show-recursive-01.out view
@@ -71,16 +71,16 @@ , Heading 1 [ Text "Nope" ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  scale(body: list(children: (text(body: [Actual]), -                              text(body: [Tight]), -                              text(body: [List]))), -        origin: left, -        x: 80%) }+                 scale(body: list(children: (text(body: [Actual]), +                                             text(body: [Tight]), +                                             text(body: [List]))), +                       origin: left, +                       x: 80%) })
test/out/compiler/show-recursive-02.out view
@@ -107,17 +107,17 @@ , BulletListItem [ Text "Normal" , Space , Text "list" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  list(children: (text(body: [Normal list+                 parbreak(), +                 list(children: (text(body: [Normal list ]))), -  text(body: [+                 text(body: [ ]), -  list(children: (text(body: [Star]), -                  text(body: [Wars]), -                  { text(body: [List]), -                    parbreak() })), -  parbreak(), -  list(children: ({ text(body: [Normal list]), -                    parbreak() })) }+                 list(children: (text(body: [Star]), +                                 text(body: [Wars]), +                                 { text(body: [List]), +                                   parbreak() })), +                 parbreak(), +                 list(children: ({ text(body: [Normal list]), +                                   parbreak() })) })
test/out/compiler/show-recursive-03.out view
@@ -84,18 +84,18 @@ , BulletListItem [ Text "Recursive!" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  block(body: list(children: ({ text(body: [List+                 parbreak(), +                 block(body: list(children: ({ text(body: [List ]), -                                block(body: block(body: list(children: (text(body: [Nested]), -                                                                        text(body: [List]))))) }, -                              { text(body: [Recursive!]), -                                parbreak() }))) }+                                               block(body: block(body: list(children: (text(body: [Nested]), +                                                                                       text(body: [List]))))) }, +                                             { text(body: [Recursive!]), +                                               parbreak() }))) })
test/out/compiler/show-selector-00.out view
@@ -160,51 +160,51 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  parbreak(), -  text(body: [+                 parbreak(), +                 parbreak(), +                 text(body: [ ]), -  parbreak(), -  text(body: [This code tests ]), -  box(body: raw(block: false, -                lang: none, -                text: "code"), -      fill: luma(23000%), -      inset: (x: 3.0pt, y: 0.0pt), -      outset: (y: 2.5pt), -      radius: 2.0pt), -  text(body: [+                 parbreak(), +                 text(body: [This code tests ]), +                 box(body: raw(block: false, +                               lang: none, +                               text: "code"), +                     fill: luma(23000%), +                     inset: (x: 3.0pt, y: 0.0pt), +                     outset: (y: 2.5pt), +                     radius: 2.0pt), +                 text(body: [ with selectors and justification.]), -  parbreak(), -  block(body: raw(block: true, -                  lang: "rs", -                  text: "code!(\"it\");\n"), -        fill: luma(23000%), -        inset: 11.0pt, -        outset: -3.0pt, -        stroke: (left: (thickness: 1.5pt,-                        color: luma(18000%)))), -  parbreak(), -  text(body: [You can use the ]), -  block(body: raw(block: true, -                  lang: "rs", -                  text: "*const T"), -        fill: luma(23000%), -        inset: 11.0pt, -        outset: -3.0pt, -        stroke: (left: (thickness: 1.5pt,-                        color: luma(18000%)))), -  text(body: [ pointer or+                 parbreak(), +                 block(body: raw(block: true, +                                 lang: "rs", +                                 text: "code!(\"it\");\n"), +                       fill: luma(23000%), +                       inset: 11.0pt, +                       outset: -3.0pt, +                       stroke: (left: (thickness: 1.5pt,+                                       color: luma(18000%)))), +                 parbreak(), +                 text(body: [You can use the ]), +                 block(body: raw(block: true, +                                 lang: "rs", +                                 text: "*const T"), +                       fill: luma(23000%), +                       inset: 11.0pt, +                       outset: -3.0pt, +                       stroke: (left: (thickness: 1.5pt,+                                       color: luma(18000%)))), +                 text(body: [ pointer or the ]), -  block(body: raw(block: true, -                  lang: "rs", -                  text: "&mut T"), -        fill: luma(23000%), -        inset: 11.0pt, -        outset: -3.0pt, -        stroke: (left: (thickness: 1.5pt,-                        color: luma(18000%)))), -  text(body: [ reference.]), -  parbreak() }+                 block(body: raw(block: true, +                                 lang: "rs", +                                 text: "&mut T"), +                       fill: luma(23000%), +                       inset: 11.0pt, +                       outset: -3.0pt, +                       stroke: (left: (thickness: 1.5pt,+                                       color: luma(18000%)))), +                 text(body: [ reference.]), +                 parbreak() })
test/out/compiler/show-selector-01.out view
@@ -79,17 +79,17 @@ , Heading 3 [ Text "Green" ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  heading(body: text(body: [Red]), -          level: 1), -  heading(body: text(body: [Blue]), -          level: 2), -  heading(body: text(body: [Green]), -          level: 3) }+                 heading(body: text(body: [Red]), +                         level: 1), +                 heading(body: text(body: [Blue]), +                         level: 2), +                 heading(body: text(body: [Green]), +                         level: 3) })
test/out/compiler/show-text-00.out view
@@ -67,15 +67,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: "Roboto"), -  text(body: [+                      font: "Roboto"), +                 text(body: [ Die Zeitung ], -       font: "Roboto"), -  smallcaps(body: [Der Spiegel]), -  text(body: [ existiert.], -       font: "Roboto"), -  parbreak() }+                      font: "Roboto"), +                 smallcaps(body: [Der Spiegel]), +                 text(body: [ existiert.], +                      font: "Roboto"), +                 parbreak() })
test/out/compiler/show-text-01.out view
@@ -113,44 +113,44 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  box(body: text(body: { text(body: [T]), -                         h(amount: -0.145em), -                         box(body: move(body: text(body: [E]), -                                        dy: 0.233em)), -                         h(amount: -0.135em), -                         text(body: [X]) }, -                 font: "New Computer Modern")), -  text(body: [, ]), -  box(body: text(body: { text(body: [La]), -                         text(body: [T]), -                         h(amount: -0.145em), -                         box(body: move(body: text(body: [E]), -                                        dy: 0.233em)), -                         h(amount: -0.135em), -                         text(body: [X]) }, -                 font: "New Computer Modern")), -  text(body: [, ]), -  box(body: text(body: { text(body: [Lua]), -                         text(body: [T]), -                         h(amount: -0.145em), -                         box(body: move(body: text(body: [E]), -                                        dy: 0.233em)), -                         h(amount: -0.135em), -                         text(body: [X]) }, -                 font: "New Computer Modern")), -  text(body: [ and ]), -  box(body: text(body: { text(body: [LuaLa]), -                         text(body: [T]), -                         h(amount: -0.145em), -                         box(body: move(body: text(body: [E]), -                                        dy: 0.233em)), -                         h(amount: -0.135em), -                         text(body: [X]) }, -                 font: "New Computer Modern")), -  text(body: [!]), -  parbreak() }+                 parbreak(), +                 box(body: text(body: { text(body: [T]), +                                        h(amount: -0.145em), +                                        box(body: move(body: text(body: [E]), +                                                       dy: 0.233em)), +                                        h(amount: -0.135em), +                                        text(body: [X]) }, +                                font: "New Computer Modern")), +                 text(body: [, ]), +                 box(body: text(body: { text(body: [La]), +                                        text(body: [T]), +                                        h(amount: -0.145em), +                                        box(body: move(body: text(body: [E]), +                                                       dy: 0.233em)), +                                        h(amount: -0.135em), +                                        text(body: [X]) }, +                                font: "New Computer Modern")), +                 text(body: [, ]), +                 box(body: text(body: { text(body: [Lua]), +                                        text(body: [T]), +                                        h(amount: -0.145em), +                                        box(body: move(body: text(body: [E]), +                                                       dy: 0.233em)), +                                        h(amount: -0.135em), +                                        text(body: [X]) }, +                                font: "New Computer Modern")), +                 text(body: [ and ]), +                 box(body: text(body: { text(body: [LuaLa]), +                                        text(body: [T]), +                                        h(amount: -0.145em), +                                        box(body: move(body: text(body: [E]), +                                                       dy: 0.233em)), +                                        h(amount: -0.135em), +                                        text(body: [X]) }, +                                font: "New Computer Modern")), +                 text(body: [!]), +                 parbreak() })
test/out/compiler/show-text-02.out view
@@ -59,13 +59,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [BB]), -  text(body: [BB]), -  text(body: [ (8)]), -  parbreak() }+                 text(body: [BB]), +                 text(body: [BB]), +                 text(body: [ (8)]), +                 parbreak() })
test/out/compiler/show-text-03.out view
@@ -69,12 +69,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Treeworld, the ]), -  text(body: [🌍]), -  text(body: [ of worlds, is a ]), -  text(body: [🌍]), -  text(body: [.]), -  parbreak() }+                 parbreak(), +                 text(body: [Treeworld, the ]), +                 text(body: [🌍]), +                 text(body: [ of worlds, is a ]), +                 text(body: [🌍]), +                 text(body: [.]), +                 parbreak() })
test/out/compiler/show-text-04.out view
@@ -75,83 +75,83 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  box(body: upper(text: [L]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [o]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [r]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [e]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [m]), -      inset: 2.0pt, -      stroke: 1.0pt), -  text(body: [ ]), -  box(body: upper(text: [i]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [p]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [s]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [u]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [m]), -      inset: 2.0pt, -      stroke: 1.0pt), -  text(body: [ ]), -  box(body: upper(text: [d]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [o]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [l]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [o]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [r]), -      inset: 2.0pt, -      stroke: 1.0pt), -  text(body: [ ]), -  box(body: upper(text: [s]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [i]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [t]), -      inset: 2.0pt, -      stroke: 1.0pt), -  text(body: [ ]), -  box(body: upper(text: [a]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [m]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [e]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [t]), -      inset: 2.0pt, -      stroke: 1.0pt), -  box(body: upper(text: [,]), -      inset: 2.0pt, -      stroke: 1.0pt), -  parbreak() }+                 box(body: upper(text: [L]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [o]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [r]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [e]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [m]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 text(body: [ ]), +                 box(body: upper(text: [i]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [p]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [s]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [u]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [m]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 text(body: [ ]), +                 box(body: upper(text: [d]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [o]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [l]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [o]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [r]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 text(body: [ ]), +                 box(body: upper(text: [s]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [i]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [t]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 text(body: [ ]), +                 box(body: upper(text: [a]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [m]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [e]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [t]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 box(body: upper(text: [,]), +                     inset: 2.0pt, +                     stroke: 1.0pt), +                 parbreak() })
test/out/compiler/show-text-05.out view
@@ -91,14 +91,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [Rust]), -  text(body: [ (🚀)]), -  text(body: [ is memory-safe and blazingly fast. Let’s rewrite everything in ]), -  text(body: [rust]), -  text(body: [ (🚀)]), -  text(body: [.]), -  parbreak() }+                 text(body: [Rust]), +                 text(body: [ (🚀)]), +                 text(body: [ is memory-safe and blazingly fast. Let’s rewrite everything in ]), +                 text(body: [rust]), +                 text(body: [ (🚀)]), +                 text(body: [.]), +                 parbreak() })
test/out/compiler/show-text-06.out view
@@ -70,10 +70,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Oh, ]), -  text(body: [|H|E|L|L|O|]), -  text(body: [ there!]), -  parbreak() }+                 text(body: [|H|E|L|L|O|]), +                 text(body: [ there!]), +                 parbreak() })
test/out/compiler/show-text-07.out view
@@ -69,17 +69,17 @@ , BulletListItem [ Text "World" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [World+                 parbreak(), +                 text(body: [World ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  list(children: ({ text(body: { [], -                                 text(body: [🌎]), -                                 [] }), -                    parbreak() })), -  parbreak() }+                 list(children: ({ text(body: { [], +                                                text(body: [🌎]), +                                                [] }), +                                   parbreak() })), +                 parbreak() })
test/out/compiler/show-text-08.out view
@@ -61,12 +61,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [The ]), -  image(path: "test/assets/files/graph.png"), -  text(body: [ has nodes.]), -  parbreak() }+                 parbreak(), +                 text(body: [The ]), +                 image(path: "test/assets/files/graph.png"), +                 text(body: [ has nodes.]), +                 parbreak() })
test/out/compiler/spread-00.out view
@@ -93,9 +93,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/spread-01.out view
@@ -76,7 +76,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/spread-02.out view
@@ -77,8 +77,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/spread-03.out view
@@ -121,11 +121,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/spread-04.out view
@@ -73,12 +73,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/compiler/spread-05.out view
@@ -65,9 +65,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/spread-12.out view
@@ -98,9 +98,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/spread-13.out view
@@ -89,8 +89,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-00.out view
@@ -55,7 +55,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-01.out view
@@ -100,24 +100,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: ["🏳"]), -  text(body: [ /= ]), -  text(body: ["🏳️‍🌈"]), -  text(body: [)]), -  text(body: [+                 text(body: [❌(]), +                 text(body: ["🏳"]), +                 text(body: [ /= ]), +                 text(body: ["🏳️‍🌈"]), +                 text(body: [)]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: ["️"]), -  text(body: [ /= ]), -  text(body: ["🏳️‍⚧️"]), -  text(body: [)]), -  parbreak() }+                 text(body: [❌(]), +                 text(body: ["️"]), +                 text(body: [ /= ]), +                 text(body: ["🏳️‍⚧️"]), +                 text(body: [)]), +                 parbreak() })
test/out/compiler/string-04.out view
@@ -104,23 +104,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: ["🏳"]), -  text(body: [ /= ]), -  text(body: ["🏳️‍🌈"]), -  text(body: [)]), -  parbreak() }+                 text(body: [❌(]), +                 text(body: ["🏳"]), +                 text(body: [ /= ]), +                 text(body: ["🏳️‍🌈"]), +                 text(body: [)]), +                 parbreak() })
test/out/compiler/string-07.out view
@@ -97,20 +97,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: ["c🏡def"]), -  text(body: [ /= ]), -  text(body: ["c🏡"]), -  text(body: [)]), -  text(body: [+                 text(body: [❌(]), +                 text(body: ["c🏡def"]), +                 text(body: [ /= ]), +                 text(body: ["c🏡"]), +                 text(body: [)]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-09.out view
@@ -117,20 +117,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: [("🏳", "️", "‍", "🌈", "!")]), -  text(body: [ /= ]), -  text(body: [("🏳️‍🌈", "!")]), -  text(body: [)]), -  text(body: [+                 text(body: [❌(]), +                 text(body: [("🏳", "️", "‍", "🌈", "!")]), +                 text(body: [ /= ]), +                 text(body: [("🏳️‍🌈", "!")]), +                 text(body: [)]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-10.out view
@@ -154,28 +154,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-11.out view
@@ -149,25 +149,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-12.out view
@@ -104,18 +104,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-13.out view
@@ -232,24 +232,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-14.out view
@@ -174,25 +174,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-15.out view
@@ -433,44 +433,44 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-18.out view
@@ -359,62 +359,62 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/string-20.out view
@@ -115,16 +115,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compiler/while-00.out view
@@ -96,43 +96,43 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [2]), -  parbreak(), -  text(body: [+                 text(body: [2]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [4]), -  parbreak(), -  text(body: [+                 text(body: [4]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [6]), -  parbreak(), -  text(body: [+                 text(body: [6]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [8]), -  parbreak(), -  text(body: [+                 text(body: [8]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [10]), -  parbreak(), -  parbreak(), -  text(body: [+                 text(body: [10]), +                 parbreak(), +                 parbreak(), +                 text(body: [ ]), -  text(body: [Hi.]), -  parbreak(), -  parbreak() }+                 text(body: [Hi.]), +                 parbreak(), +                 parbreak() })
test/out/compiler/while-01.out view
@@ -83,13 +83,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak(), -  text(body: [+                 text(body: [✅]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-00.out view
@@ -151,31 +151,31 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-01.out view
@@ -73,10 +73,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-06.out view
@@ -133,25 +133,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-08.out view
@@ -94,16 +94,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-09.out view
@@ -111,23 +111,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: [1]), -  text(body: [ /= ]), -  text(body: [0]), -  text(body: [)]), -  parbreak() }+                 text(body: [❌(]), +                 text(body: [1]), +                 text(body: [ /= ]), +                 text(body: [0]), +                 text(body: [)]), +                 parbreak() })
test/out/compute/calc-12.out view
@@ -111,19 +111,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-15.out view
@@ -102,16 +102,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-16.out view
@@ -68,10 +68,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-26.out view
@@ -68,10 +68,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-28.out view
@@ -94,16 +94,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-30.out view
@@ -107,19 +107,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-31.out view
@@ -137,25 +137,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-32.out view
@@ -137,25 +137,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/calc-36.out view
@@ -212,31 +212,31 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/construct-00.out view
@@ -166,28 +166,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [❌(]), -  text(body: [rgb(0%,30%,70%,100%)]), -  text(body: [ /= ]), -  text(body: [rgb(0%,30%,70%,100%)]), -  text(body: [)]), -  parbreak(), -  text(body: [❌(]), -  text(body: [rgb(100%,0%,0%,50%)]), -  text(body: [ /= ]), -  text(body: [rgb(100%,0%,0%,50%)]), -  text(body: [)]), -  parbreak(), -  text(body: [✅]), -  text(body: [+                 text(body: [❌(]), +                 text(body: [rgb(0%,30%,70%,100%)]), +                 text(body: [ /= ]), +                 text(body: [rgb(0%,30%,70%,100%)]), +                 text(body: [)]), +                 parbreak(), +                 text(body: [❌(]), +                 text(body: [rgb(100%,0%,0%,50%)]), +                 text(body: [ /= ]), +                 text(body: [rgb(100%,0%,0%,50%)]), +                 text(body: [)]), +                 parbreak(), +                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/construct-01.out view
@@ -68,9 +68,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  stack(children: (rect(fill: luma(0%)), -                   rect(fill: luma(80%))), -        dir: ltr), -  parbreak() }+                 stack(children: (rect(fill: luma(0%)), +                                  rect(fill: luma(80%))), +                       dir: ltr), +                 parbreak() })
test/out/compute/construct-07.out view
@@ -109,23 +109,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [🖂]), -  text(body: [+                 parbreak(), +                 text(body: [🖂]), +                 text(body: [ ]), -  text(body: [🖃]), -  text(body: [+                 text(body: [🖃]), +                 text(body: [ ]), -  text(body: [🖆]), -  text(body: [+                 text(body: [🖆]), +                 text(body: [ ]), -  text(body: [🖆]), -  text(body: [+                 text(body: [🖆]), +                 text(body: [ ]), -  text(body: [🖄]), -  text(body: [+                 text(body: [🖄]), +                 text(body: [ ]), -  text(body: [🖅]), -  parbreak() }+                 text(body: [🖅]), +                 parbreak() })
test/out/compute/construct-09.out view
@@ -82,13 +82,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/construct-11.out view
@@ -58,6 +58,6 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/compute/data-00.out view
@@ -60,9 +60,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/data-03.out view
@@ -98,29 +98,29 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  table(children: (strong(body: [Name]), -                   strong(body: [Species]), -                   strong(body: [Weight]), -                   strong(body: [Length]), -                   [Debby], -                   [Rhinoceros], -                   [1900kg], -                   [390cm], -                   [Fluffy], -                   [Tiger], -                   [115kg], -                   [310cm], -                   [Sleepy], -                   [Dolphin], -                   [150kg], -                   [180cm]), -        columns: 4), -  parbreak() }+                 table(children: (strong(body: [Name]), +                                  strong(body: [Species]), +                                  strong(body: [Weight]), +                                  strong(body: [Length]), +                                  [Debby], +                                  [Rhinoceros], +                                  [1900kg], +                                  [390cm], +                                  [Fluffy], +                                  [Tiger], +                                  [115kg], +                                  [310cm], +                                  [Sleepy], +                                  [Dolphin], +                                  [150kg], +                                  [180cm]), +                       columns: 4), +                 parbreak() })
test/out/compute/data-06.out view
@@ -92,15 +92,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/data-08.out view
@@ -170,33 +170,33 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/data-10.out view
@@ -169,41 +169,41 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [❌(]), -  text(body: [8]), -  text(body: [ /= ]), -  text(body: [7]), -  text(body: [)]), -  text(body: [+                 text(body: [❌(]), +                 text(body: [8]), +                 text(body: [ /= ]), +                 text(body: [7]), +                 text(body: [)]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [❌(]), -  text(body: [true]), -  text(body: [ /= ]), -  text(body: [false]), -  text(body: [)]), -  parbreak() }+                 text(body: [❌(]), +                 text(body: [true]), +                 text(body: [ /= ]), +                 text(body: [false]), +                 text(body: [)]), +                 parbreak() })
test/out/compute/data-12.out view
@@ -124,9 +124,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/foundations-00.out view
@@ -76,13 +76,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/foundations-01.out view
@@ -71,10 +71,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/foundations-12.out view
@@ -65,10 +65,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/compute/foundations-13.out view
@@ -77,13 +77,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/compute/foundations-14.out view
@@ -50,7 +50,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  emph(body: text(body: [Hello World!])), -  parbreak() }+                 emph(body: text(body: [Hello World!])), +                 parbreak() })
test/out/compute/foundations-16.out view
@@ -68,17 +68,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Interacting+                 parbreak(), +                 text(body: [Interacting ]), -  text(body: { text(body: [+                 text(body: { text(body: [ Blue ], -                    color: rgb(0%,45%,85%,100%)), -               move(body: text(body: [🌊], -                               color: rgb(0%,45%,85%,100%)), -                    dy: -0.15em), -               parbreak() }, -       font: "PT Sans"), -  parbreak() }+                                   color: rgb(0%,45%,85%,100%)), +                              move(body: text(body: [🌊], +                                              color: rgb(0%,45%,85%,100%)), +                                   dy: -0.15em), +                              parbreak() }, +                      font: "PT Sans"), +                 parbreak() })
test/out/layout/align-00.out view
@@ -134,32 +134,32 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  stack(children: (align(alignment: left, -                         body: square(fill: rgb(13%,61%,67%,100%), -                                      size: 15.0pt)), -                   align(alignment: center, -                         body: square(fill: rgb(13%,61%,67%,100%), -                                      size: 20.0pt)), -                   align(alignment: right, -                         body: square(fill: rgb(13%,61%,67%,100%), -                                      size: 15.0pt))), -        dir: ltr), -  text(body: [+                 stack(children: (align(alignment: left, +                                        body: square(fill: rgb(13%,61%,67%,100%), +                                                     size: 15.0pt)), +                                  align(alignment: center, +                                        body: square(fill: rgb(13%,61%,67%,100%), +                                                     size: 20.0pt)), +                                  align(alignment: right, +                                        body: square(fill: rgb(13%,61%,67%,100%), +                                                     size: 15.0pt))), +                       dir: ltr), +                 text(body: [ ]), -  align(alignment: Axes(center, horizon), -        body: rect(fill: rgb(13%,61%,67%,100%), -                   height: 10.0pt)), -  text(body: [+                 align(alignment: Axes(center, horizon), +                       body: rect(fill: rgb(13%,61%,67%,100%), +                                  height: 10.0pt)), +                 text(body: [ ]), -  align(alignment: bottom, -        body: stack(children: (align(alignment: center, -                                     body: rect(fill: rgb(18%,80%,25%,100%), -                                                height: 10.0pt)), -                               rect(fill: rgb(100%,25%,21%,100%), -                                    height: 10.0pt, -                                    width: 100%)))), -  parbreak() }+                 align(alignment: bottom, +                       body: stack(children: (align(alignment: center, +                                                    body: rect(fill: rgb(18%,80%,25%,100%), +                                                               height: 10.0pt)), +                                              rect(fill: rgb(100%,25%,21%,100%), +                                                   height: 10.0pt, +                                                   width: 100%)))), +                 parbreak() })
test/out/layout/align-01.out view
@@ -59,12 +59,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  align(alignment: center, -        body: { text(body: [+                 align(alignment: center, +                       body: { text(body: [ Lorem Ipsum]), -                parbreak(), -                text(body: [Dolor]), -                parbreak() }), -  parbreak() }+                               parbreak(), +                               text(body: [Dolor]), +                               parbreak() }), +                 parbreak() })
test/out/layout/align-02.out view
@@ -104,31 +104,31 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  rotate(angle: -30.0deg, -         body: text(body: [Hello]), -         origin: Axes(end, horizon)), -  parbreak(), -  text(body: [+                 rotate(angle: -30.0deg, +                        body: text(body: [Hello]), +                        origin: Axes(end, horizon)), +                 parbreak(), +                 text(body: [ ], lang: "de"), -  align(alignment: start, -        body: text(body: [Start], -                   lang: "de")), -  text(body: [+                 align(alignment: start, +                       body: text(body: [Start], +                                  lang: "de")), +                 text(body: [ ], lang: "de"), -  align(alignment: end, -        body: text(body: [Ende], -                   lang: "de")), -  parbreak(), -  text(body: [+                 align(alignment: end, +                       body: text(body: [Ende], +                                  lang: "de")), +                 parbreak(), +                 text(body: [ ], lang: "ar"), -  align(alignment: start, -        body: text(body: [يبدأ], -                   lang: "ar")), -  text(body: [+                 align(alignment: start, +                       body: text(body: [يبدأ], +                                  lang: "ar")), +                 text(body: [ ], lang: "ar"), -  align(alignment: end, -        body: text(body: [نهاية], -                   lang: "ar")), -  parbreak() }+                 align(alignment: end, +                       body: text(body: [نهاية], +                                  lang: "ar")), +                 parbreak() })
test/out/layout/align-03.out view
@@ -80,13 +80,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [❌(]), +                 text(body: [alignment]), +                 text(body: [ /= ]), +                 text(body: ["2d alignment"]), +                 text(body: [)]), +                 parbreak() })
test/out/layout/block-sizing-00.out view
@@ -93,26 +93,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), -  text(body: [+                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), +                 text(body: [ ]), -  block(fill: rgb(49%,85%,100%,100%), -        height: 60.0pt, -        width: 80%), -  text(body: [+                 block(fill: rgb(49%,85%,100%,100%), +                       height: 60.0pt, +                       width: 80%), +                 text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur]), -  text(body: [+                 text(body: [Lorem ipsum dolor sit amet, consectetur]), +                 text(body: [ ]), -  block(body: { [Lorem ipsum dolor sit amet, consectetur adipiscing elit,], -                colbreak() }, -        breakable: false, -        fill: rgb(49%,85%,100%,100%), -        inset: 4.0pt, -        width: 100%), -  parbreak() }+                 block(body: { [Lorem ipsum dolor sit amet, consectetur adipiscing elit,], +                               colbreak() }, +                       breakable: false, +                       fill: rgb(49%,85%,100%,100%), +                       inset: 4.0pt, +                       width: 100%), +                 parbreak() })
test/out/layout/block-sizing-01.out view
@@ -100,13 +100,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  block(body: layout(func: ), -        height: 80.0pt, -        width: 60.0pt), -  parbreak() }+                 block(body: layout(func: ), +                       height: 80.0pt, +                       width: 60.0pt), +                 parbreak() })
test/out/layout/block-spacing-00.out view
@@ -61,13 +61,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Hello]), -  parbreak(), -  text(body: [There]), -  parbreak(), -  block(body: text(body: [Further down]), -        spacing: 20.0pt), -  parbreak() }+                 parbreak(), +                 text(body: [There]), +                 parbreak(), +                 block(body: text(body: [Further down]), +                       spacing: 20.0pt), +                 parbreak() })
test/out/layout/clip-00.out view
@@ -99,27 +99,27 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Hello ]), -  box(body: rect(fill: rgb(100%,25%,21%,100%), -                 height: 3.0em, -                 width: 3.0em), -      clip: false, -      height: 1.0em, -      width: 1.0em), -  text(body: [+                 text(body: [Hello ]), +                 box(body: rect(fill: rgb(100%,25%,21%,100%), +                                height: 3.0em, +                                width: 3.0em), +                     clip: false, +                     height: 1.0em, +                     width: 1.0em), +                 text(body: [ world 1]), -  parbreak(), -  text(body: [Space]), -  parbreak(), -  text(body: [Hello ]), -  box(body: rect(fill: rgb(100%,25%,21%,100%), -                 height: 3.0em, -                 width: 3.0em), -      clip: true, -      height: 1.0em, -      width: 1.0em), -  text(body: [ +                 parbreak(), +                 text(body: [Space]), +                 parbreak(), +                 text(body: [Hello ]), +                 box(body: rect(fill: rgb(100%,25%,21%,100%), +                                height: 3.0em, +                                width: 3.0em), +                     clip: true, +                     height: 1.0em, +                     width: 1.0em), +                 text(body: [  world 2]), -  parbreak() }+                 parbreak() })
test/out/layout/clip-01.out view
@@ -126,26 +126,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  block(body: { text(body: [+                 block(body: { text(body: [ But, soft! what light through ]), -                parbreak() }, -        clip: false, -        height: 2.0em, -        stroke: (thickness: 1.0pt,-                 color: rgb(0%,0%,0%,100%)), -        width: 5.0em), -  parbreak(), -  v(amount: 2.0em), -  parbreak(), -  block(body: { text(body: [+                               parbreak() }, +                       clip: false, +                       height: 2.0em, +                       stroke: (thickness: 1.0pt,+                                color: rgb(0%,0%,0%,100%)), +                       width: 5.0em), +                 parbreak(), +                 v(amount: 2.0em), +                 parbreak(), +                 block(body: { text(body: [ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun.]), -                parbreak() }, -        clip: true, -        height: 2.0em, -        stroke: (thickness: 1.0pt,-                 color: rgb(0%,0%,0%,100%)), -        width: 5.0em), -  parbreak() }+                               parbreak() }, +                       clip: true, +                       height: 2.0em, +                       stroke: (thickness: 1.0pt,+                                color: rgb(0%,0%,0%,100%)), +                       width: 5.0em), +                 parbreak() })
test/out/layout/clip-02.out view
@@ -85,18 +85,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Emoji: ]), -  box(body: text(body: [🐪, 🌋, 🏞]), -      height: 0.5em, -      stroke: (thickness: 1.0pt,-               color: rgb(0%,0%,0%,100%))), -  parbreak(), -  text(body: [Emoji: ]), -  box(body: text(body: [🐪, 🌋, 🏞]), -      clip: true, -      height: 0.5em, -      stroke: (thickness: 1.0pt,-               color: rgb(0%,0%,0%,100%))), -  parbreak() }+                 text(body: [Emoji: ]), +                 box(body: text(body: [🐪, 🌋, 🏞]), +                     height: 0.5em, +                     stroke: (thickness: 1.0pt,+                              color: rgb(0%,0%,0%,100%))), +                 parbreak(), +                 text(body: [Emoji: ]), +                 box(body: text(body: [🐪, 🌋, 🏞]), +                     clip: true, +                     height: 0.5em, +                     stroke: (thickness: 1.0pt,+                              color: rgb(0%,0%,0%,100%))), +                 parbreak() })
test/out/layout/clip-03.out view
@@ -102,19 +102,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [First!]), -  parbreak(), -  block(body: { text(body: [+                 parbreak(), +                 text(body: [First!]), +                 parbreak(), +                 block(body: { text(body: [ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun.]), -                parbreak() }, -        clip: true, -        height: 4.0em, -        stroke: (thickness: 1.0pt,-                 color: rgb(0%,0%,0%,100%))), -  parbreak() }+                               parbreak() }, +                       clip: true, +                       height: 4.0em, +                       stroke: (thickness: 1.0pt,+                                color: rgb(0%,0%,0%,100%))), +                 parbreak() })
test/out/layout/columns-00.out view
@@ -146,32 +146,32 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: ("Noto Sans Arabic", -              "Linux Libertine"), -       lang: "ar"), -  parbreak(), -  box(fill: rgb(18%,80%,25%,100%), -      height: 8.0pt, -      width: 6.0pt), -  text(body: [ وتحفيز+                      font: ("Noto Sans Arabic", +                             "Linux Libertine"), +                      lang: "ar"), +                 parbreak(), +                 box(fill: rgb(18%,80%,25%,100%), +                     height: 8.0pt, +                     width: 6.0pt), +                 text(body: [ وتحفيز العديد من التفاعلات الكيميائية. (DNA) من أهم الأحماض النووية التي تُشكِّل إلى جانب كل من البروتينات والليبيدات والسكريات المتعددة ], -       font: ("Noto Sans Arabic", -              "Linux Libertine"), -       lang: "ar"), -  box(fill: rgb(13%,61%,67%,100%), -      height: 8.0pt, -      width: 6.0pt), -  text(body: [+                      font: ("Noto Sans Arabic", +                             "Linux Libertine"), +                      lang: "ar"), +                 box(fill: rgb(13%,61%,67%,100%), +                     height: 8.0pt, +                     width: 6.0pt), +                 text(body: [ الجزيئات الضخمة الأربعة الضرورية للحياة.], -       font: ("Noto Sans Arabic", -              "Linux Libertine"), -       lang: "ar"), -  parbreak() }+                      font: ("Noto Sans Arabic", +                             "Linux Libertine"), +                      lang: "ar"), +                 parbreak() })
test/out/layout/columns-01.out view
@@ -136,17 +136,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  rect(body: columns(body: { text(body: [+                 parbreak(), +                 rect(body: columns(body: { text(body: [ A special plight has befallen our document. Columns in text boxes reigned down unto the soil to waste a year’s crop of rich layouts. The columns at least were graciously balanced.]), -                             parbreak() }, -                     count: 2), -       height: 100.0pt, -       inset: 8.0pt, -       width: 180.0pt), -  parbreak() }+                                            parbreak() }, +                                    count: 2), +                      height: 100.0pt, +                      inset: 8.0pt, +                      width: 180.0pt), +                 parbreak() })
test/out/layout/columns-02.out view
@@ -184,21 +184,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet is a common blind text+                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet is a common blind text and I again am in need of filling up this page ]), -  align(alignment: bottom, -        body: rect(fill: rgb(13%,61%,67%,100%), -                   height: 12.0pt, -                   width: 100%)), -  text(body: [+                 align(alignment: bottom, +                       body: rect(fill: rgb(13%,61%,67%,100%), +                                  height: 12.0pt, +                                  width: 100%)), +                 text(body: [ ]), -  colbreak(), -  parbreak(), -  text(body: [so I’m returning to this trusty tool of tangible terror.+                 colbreak(), +                 parbreak(), +                 text(body: [so I’m returning to this trusty tool of tangible terror. Sure, it is not the most creative way of filling up a page for a test but it does get the job done.]), -  parbreak() }+                 parbreak() })
test/out/layout/columns-03.out view
@@ -81,18 +81,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  rect(body: columns(body: { text(body: [+                 parbreak(), +                 rect(body: columns(body: { text(body: [ ABC ]), -                             linebreak(), -                             text(body: [BCD+                                            linebreak(), +                                            text(body: [BCD ]), -                             colbreak(), -                             text(body: [+                                            colbreak(), +                                            text(body: [ DEF]), -                             parbreak() }, -                     count: 2), -       inset: 6.0pt), -  parbreak() }+                                            parbreak() }, +                                    count: 2), +                      inset: 6.0pt), +                 parbreak() })
test/out/layout/columns-04.out view
@@ -96,24 +96,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  rect(fill: rgb(18%,80%,25%,100%), -       height: 2.5cm, -       width: 100%), -  text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 rect(fill: rgb(18%,80%,25%,100%), +                      height: 2.5cm, +                      width: 100%), +                 text(body: [ ]), +                 parbreak(), +                 text(body: [ ]), -  rect(fill: rgb(13%,61%,67%,100%), -       height: 2.0cm, -       width: 100%), -  text(body: [ ]), -  parbreak(), -  text(body: [+                 rect(fill: rgb(13%,61%,67%,100%), +                      height: 2.0cm, +                      width: 100%), +                 text(body: [ ]), +                 parbreak(), +                 text(body: [ ]), -  circle(fill: rgb(13%,61%,67%,100%)), -  parbreak() }+                 circle(fill: rgb(13%,61%,67%,100%)), +                 parbreak() })
test/out/layout/columns-05.out view
@@ -80,23 +80,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [A+                 parbreak(), +                 text(body: [A ]), -  colbreak(), -  text(body: [+                 colbreak(), +                 text(body: [ ]), -  colbreak(), -  text(body: [+                 colbreak(), +                 text(body: [ B ]), -  pagebreak(), -  text(body: [+                 pagebreak(), +                 text(body: [ C ]), -  colbreak(), -  text(body: [+                 colbreak(), +                 text(body: [ D]), -  parbreak() }+                 parbreak() })
test/out/layout/columns-06.out view
@@ -79,10 +79,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  rect(body: text(body: [So there isn’t anything in the second column?]), -       inset: 3.0pt, -       width: 100%), -  parbreak() }+                 parbreak(), +                 rect(body: text(body: [So there isn’t anything in the second column?]), +                      inset: 3.0pt, +                      width: 100%), +                 parbreak() })
test/out/layout/columns-07.out view
@@ -58,8 +58,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Arbitrary horizontal growth.]), -  parbreak() }+                 parbreak(), +                 text(body: [Arbitrary horizontal growth.]), +                 parbreak() })
test/out/layout/columns-08.out view
@@ -130,22 +130,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [There can be as much content as you want in the left column+                 parbreak(), +                 text(body: [There can be as much content as you want in the left column and the document will grow with it.]), -  parbreak(), -  rect(fill: rgb(18%,80%,25%,100%), -       height: 30.0pt, -       width: 100%), -  parbreak(), -  text(body: [Only an explicit ]), -  colbreak(), -  text(body: [ ]), -  raw(block: false, -      lang: none, -      text: "#colbreak()"), -  text(body: [ can put content in the+                 parbreak(), +                 rect(fill: rgb(18%,80%,25%,100%), +                      height: 30.0pt, +                      width: 100%), +                 parbreak(), +                 text(body: [Only an explicit ]), +                 colbreak(), +                 text(body: [ ]), +                 raw(block: false, +                     lang: none, +                     text: "#colbreak()"), +                 text(body: [ can put content in the second column.]), -  parbreak() }+                 parbreak() })
test/out/layout/columns-09.out view
@@ -68,8 +68,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [This is a normal page. Very normal.]), -  parbreak() }+                 parbreak(), +                 text(body: [This is a normal page. Very normal.]), +                 parbreak() })
test/out/layout/container-00.out view
@@ -68,18 +68,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A ]), -  box(body: { text(body: [B ]), -              linebreak(), -              text(body: [C]) }), -  text(body: [ D.]), -  parbreak(), -  text(body: [Spaced ]), -  linebreak(), -  box(height: 0.5cm), -  text(body: [ ]), -  linebreak(), -  text(body: [Apart]), -  parbreak() }+                 text(body: [A ]), +                 box(body: { text(body: [B ]), +                             linebreak(), +                             text(body: [C]) }), +                 text(body: [ D.]), +                 parbreak(), +                 text(body: [Spaced ]), +                 linebreak(), +                 box(height: 0.5cm), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [Apart]), +                 parbreak() })
test/out/layout/container-01.out view
@@ -89,27 +89,27 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  block(body: { text(body: [+                 block(body: { text(body: [ ]), -                block(fill: rgb(18%,80%,25%,100%), -                      height: 60%, -                      spacing: 0.0pt, -                      width: 60%), -                text(body: [+                               block(fill: rgb(18%,80%,25%,100%), +                                     height: 60%, +                                     spacing: 0.0pt, +                                     width: 60%), +                               text(body: [ ]), -                block(fill: rgb(0%,45%,85%,100%), -                      height: 60%, -                      spacing: 0.0pt, -                      width: 50%), -                parbreak() }, -        fill: rgb(100%,25%,21%,100%), -        height: 80.0pt, -        spacing: 0.0pt, -        width: 90.0pt), -  parbreak() }+                               block(fill: rgb(0%,45%,85%,100%), +                                     height: 60%, +                                     spacing: 0.0pt, +                                     width: 50%), +                               parbreak() }, +                       fill: rgb(100%,25%,21%,100%), +                       height: 80.0pt, +                       spacing: 0.0pt, +                       width: 90.0pt), +                 parbreak() })
test/out/layout/container-02.out view
@@ -77,14 +77,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  box(body: path(fill: rgb(69%,5%,78%,100%), -                 vertices: ((0.0pt, 0.0pt), -                            (30.0pt, 30.0pt), -                            (0.0pt, 30.0pt), -                            (30.0pt, 0.0pt))), -      fill: rgb(100%,86%,0%,100%), -      height: 50.0pt, -      width: 50.0pt), -  parbreak() }+                 box(body: path(fill: rgb(69%,5%,78%,100%), +                                vertices: ((0.0pt, 0.0pt), +                                           (30.0pt, +                                            30.0pt), +                                           (0.0pt, 30.0pt), +                                           (30.0pt, +                                            0.0pt))), +                     fill: rgb(100%,86%,0%,100%), +                     height: 50.0pt, +                     width: 50.0pt), +                 parbreak() })
test/out/layout/container-03.out view
@@ -60,11 +60,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Hello ]), -  box(body: rect(height: 0.7em, -                 width: 100%), -      width: 1.0fr), -  text(body: [ World]), -  parbreak() }+                 text(body: [Hello ]), +                 box(body: rect(height: 0.7em, +                                width: 100%), +                     width: 1.0fr), +                 text(body: [ World]), +                 parbreak() })
test/out/layout/container-04.out view
@@ -97,15 +97,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [First!]), -  parbreak(), -  block(body: { text(body: [+                 parbreak(), +                 text(body: [First!]), +                 parbreak(), +                 block(body: { text(body: [ But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun.]), -                parbreak() }), -  parbreak() }+                               parbreak() }), +                 parbreak() })
test/out/layout/container-fill-00.out view
@@ -113,26 +113,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  block(body: { text(body: [+                 block(body: { text(body: [ ]), -                text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt]), -                text(body: [+                               text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt]), +                               text(body: [ ]), -                box(body: text(body: [tempor]), -                    fill: rgb(22%,80%,80%,100%), -                    outset: 2.0pt), -                text(body: [+                               box(body: text(body: [tempor]), +                                   fill: rgb(22%,80%,80%,100%), +                                   outset: 2.0pt), +                               text(body: [ ]), -                text(body: [ut labore et dolore magna]), -                parbreak() }, -        fill: rgb(49%,85%,100%,100%), -        inset: 8.0pt, -        stroke: rgb(34%,60%,70%,100%), -        width: 100%), -  parbreak() }+                               text(body: [ut labore et dolore magna]), +                               parbreak() }, +                       fill: rgb(49%,85%,100%,100%), +                       inset: 8.0pt, +                       stroke: rgb(34%,60%,70%,100%), +                       width: 100%), +                 parbreak() })
test/out/layout/enum-00.out view
@@ -51,9 +51,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  enum(children: (text(body: [Embrace]), -                  text(body: [Extend]), -                  text(body: [Extinguish]))), -  parbreak() }+                 enum(children: (text(body: [Embrace]), +                                 text(body: [Extend]), +                                 text(body: [Extinguish]))), +                 parbreak() })
test/out/layout/enum-01.out view
@@ -52,14 +52,14 @@ , EnumListItem Nothing [ Text "Second" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  enum(children: (text(body: [Before first!]), -                  { text(body: [First.+                 enum(children: (text(body: [Before first!]), +                                 { text(body: [First. ]), -                    enum(children: (text(body: [Indented+                                   enum(children: (text(body: [Indented ])), -                         start: 2) }, -                  { text(body: [Second]), -                    parbreak() }), -       start: 0) }+                                        start: 2) }, +                                 { text(body: [Second]), +                                   parbreak() }), +                      start: 0) })
test/out/layout/enum-02.out view
@@ -67,16 +67,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  enum(children: (numbering(numbering: "I", -                            numbers: (1)))), -  enum(children: (numbering(numbering: "I", -                            numbers: (2)))), -  enum(children: (numbering(numbering: "I", -                            numbers: (3)))), -  enum(children: (numbering(numbering: "I", -                            numbers: (4)))), -  enum(children: (numbering(numbering: "I", -                            numbers: (5)))), -  parbreak() }+                 enum(children: (numbering(numbering: "I", +                                           numbers: (1)))), +                 enum(children: (numbering(numbering: "I", +                                           numbers: (2)))), +                 enum(children: (numbering(numbering: "I", +                                           numbers: (3)))), +                 enum(children: (numbering(numbering: "I", +                                           numbers: (4)))), +                 enum(children: (numbering(numbering: "I", +                                           numbers: (5)))), +                 parbreak() })
test/out/layout/enum-03.out view
@@ -47,10 +47,10 @@ , DescListItem [ Text "Term" ] [ Text "List" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  list(children: (text(body: [Bullet List]))), -  enum(children: (text(body: [Numbered List]))), -  terms(children: ((text(body: [Term]), -                    { text(body: [List]), -                      parbreak() }))) }+                 list(children: (text(body: [Bullet List]))), +                 enum(children: (text(body: [Numbered List]))), +                 terms(children: ((text(body: [Term]), +                                   { text(body: [List]), +                                     parbreak() }))) })
test/out/layout/enum-04.out view
@@ -64,12 +64,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [1.2 ]), -  linebreak(), -  text(body: [This is 0. ]), -  linebreak(), -  text(body: [See 0.3. ]), -  linebreak(), -  parbreak() }+                 text(body: [1.2 ]), +                 linebreak(), +                 text(body: [This is 0. ]), +                 linebreak(), +                 text(body: [See 0.3. ]), +                 linebreak(), +                 parbreak() })
test/out/layout/enum-05.out view
@@ -57,12 +57,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  enum(children: ({  })), -  text(body: [Empty ]), -  linebreak(), -  text(body: [+Nope ]), -  linebreak(), -  text(body: [a + 0.]), -  parbreak() }+                 enum(children: ({  })), +                 text(body: [Empty ]), +                 linebreak(), +                 text(body: [+Nope ]), +                 linebreak(), +                 text(body: [a + 0.]), +                 parbreak() })
test/out/layout/enum-06.out view
@@ -66,16 +66,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  enum(children: (text(body: [first]), -                  text(body: [second]), -                  text(body: [fifth+                 enum(children: (text(body: [first]), +                                 text(body: [second]), +                                 text(body: [fifth ])), -       start: 1), -  enum(children: (enum.item(body: text(body: [First]), -                            number: 1), -                  text(body: [Second]), -                  enum.item(body: text(body: [Fifth]), -                            number: 5))), -  parbreak() }+                      start: 1), +                 enum(children: (enum.item(body: text(body: [First]), +                                           number: 1), +                                 text(body: [Second]), +                                 enum.item(body: text(body: [Fifth]), +                                           number: 5))), +                 parbreak() })
test/out/layout/enum-align-00.out view
@@ -69,21 +69,21 @@     Nothing [ Text "BACK" , HardBreak , Text "HERE" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  enum(children: ({ text(body: [ABCDEF]), -                    linebreak(), -                    text(body: [GHIJKL]), -                    linebreak(), -                    text(body: [MNOPQR+                 parbreak(), +                 enum(children: ({ text(body: [ABCDEF]), +                                   linebreak(), +                                   text(body: [GHIJKL]), +                                   linebreak(), +                                   text(body: [MNOPQR ]), -                    enum(children: ({ text(body: [INNER]), -                                      linebreak(), -                                      text(body: [INNER]), -                                      linebreak(), -                                      text(body: [INNER]) })) }, -                  { text(body: [BACK]), -                    linebreak(), -                    text(body: [HERE]), -                    parbreak() })) }+                                   enum(children: ({ text(body: [INNER]), +                                                     linebreak(), +                                                     text(body: [INNER]), +                                                     linebreak(), +                                                     text(body: [INNER]) })) }, +                                 { text(body: [BACK]), +                                   linebreak(), +                                   text(body: [HERE]), +                                   parbreak() })) })
test/out/layout/enum-align-01.out view
@@ -62,18 +62,18 @@ , EnumListItem (Just 16) [ Text "c" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  enum(children: (text(body: [a]), -                  text(body: [b]), -                  text(body: [c+                 enum(children: (text(body: [a]), +                                 text(body: [b]), +                                 text(body: [c ])), -       start: 1), -  text(body: [+                      start: 1), +                 text(body: [ ]), -  enum(children: (text(body: [ a]), -                  text(body: [ b]), -                  { text(body: [c]), -                    parbreak() }), -       number-align: start, -       start: 1) }+                 enum(children: (text(body: [ a]), +                                 text(body: [ b]), +                                 { text(body: [c]), +                                   parbreak() }), +                      number-align: start, +                      start: 1) })
test/out/layout/enum-align-02.out view
@@ -74,24 +74,24 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  enum(children: (text(body: [ c]), -                  text(body: [ d]), -                  { text(body: [e]), -                    linebreak(), -                    text(body: [f+                 parbreak(), +                 enum(children: (text(body: [ c]), +                                 text(body: [ d]), +                                 { text(body: [e]), +                                   linebreak(), +                                   text(body: [f ]), -                    enum(children: ({ text(body: [ f]), -                                      linebreak(), -                                      text(body: [g]) }, -                                    text(body: [g]), -                                    { text(body: [h]), -                                      parbreak() }), -                         number-align: start, -                         start: 2) }), -       number-align: start, -       start: 4) }+                                   enum(children: ({ text(body: [ f]), +                                                     linebreak(), +                                                     text(body: [g]) }, +                                                   text(body: [g]), +                                                   { text(body: [h]), +                                                     parbreak() }), +                                        number-align: start, +                                        start: 2) }), +                      number-align: start, +                      start: 4) })
test/out/layout/enum-numbering-00.out view
@@ -65,19 +65,19 @@ , EnumListItem Nothing [ Text "Normal" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  enum(children: (text(body: [First]), -                  { text(body: [Second+                 enum(children: (text(body: [First]), +                                 { text(body: [Second ]), -                    enum(children: ({ text(body: [Nested+                                   enum(children: ({ text(body: [Nested ]), -                                      enum(children: (text(body: [Deep])), -                                           numbering: "(1.a.*)") }), -                         numbering: "(1.a.*)", -                         start: 2) }, -                  { text(body: [Normal]), -                    parbreak() }), -       numbering: "(1.a.*)") }+                                                     enum(children: (text(body: [Deep])), +                                                          numbering: "(1.a.*)") }), +                                        numbering: "(1.a.*)", +                                        start: 2) }, +                                 { text(body: [Normal]), +                                   parbreak() }), +                      numbering: "(1.a.*)") })
test/out/layout/enum-numbering-01.out view
@@ -57,15 +57,15 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  enum(children: ({ text(body: [First+                 enum(children: ({ text(body: [First ]), -                    enum(children: ({ text(body: [Nested]), -                                      parbreak() }), -                         full: true, -                         numbering: "1.a.") }), -       full: true, -       numbering: "1.a.") }+                                   enum(children: ({ text(body: [Nested]), +                                                     parbreak() }), +                                        full: true, +                                        numbering: "1.a.") }), +                      full: true, +                      numbering: "1.a.") })
test/out/layout/enum-numbering-02.out view
@@ -89,14 +89,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  enum(children: (text(body: [Red]), -                  text(body: [Green]), -                  text(body: [Blue]), -                  text(body: [Red])), -       numbering: , -       spacing: 0.65em + -3.0pt, -       start: 3, -       tight: false), -  parbreak() }+                 enum(children: (text(body: [Red]), +                                 text(body: [Green]), +                                 text(body: [Blue]), +                                 text(body: [Red])), +                      numbering: , +                      spacing: 0.65em + -3.0pt, +                      start: 3, +                      tight: false), +                 parbreak() })
test/out/layout/enum-numbering-03.out view
@@ -67,14 +67,14 @@ , EnumListItem Nothing [ Text "C" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  enum(children: ({ text(body: [A+                 enum(children: ({ text(body: [A ]), -                    enum(children: (text(body: [B])), -                         numbering: ) }, -                  { text(body: [C]), -                    parbreak() }), -       numbering: ) }+                                   enum(children: (text(body: [B])), +                                        numbering: ) }, +                                 { text(body: [C]), +                                   parbreak() }), +                      numbering: ) })
test/out/layout/enum-numbering-04.out view
@@ -86,32 +86,32 @@ , EnumListItem Nothing [ Text "F" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: "New Computer Modern"), -  text(body: [+                      font: "New Computer Modern"), +                 text(body: [ ], -       font: "New Computer Modern"), -  enum(children: ({ text(body: [A+                      font: "New Computer Modern"), +                 enum(children: ({ text(body: [A ], -                         font: "New Computer Modern"), -                    enum(children: (text(body: [B], -                                         font: "New Computer Modern"), -                                    { text(body: [C+                                        font: "New Computer Modern"), +                                   enum(children: (text(body: [B], +                                                        font: "New Computer Modern"), +                                                   { text(body: [C ], -                                           font: "New Computer Modern"), -                                      enum(children: (text(body: [D], -                                                           font: "New Computer Modern")), -                                           full: true, -                                           numbering: ) }), -                         full: true, -                         numbering: ) }, -                  text(body: [E], -                       font: "New Computer Modern"), -                  { text(body: [F], -                         font: "New Computer Modern"), -                    parbreak() }), -       full: true, -       numbering: ) }+                                                          font: "New Computer Modern"), +                                                     enum(children: (text(body: [D], +                                                                          font: "New Computer Modern")), +                                                          full: true, +                                                          numbering: ) }), +                                        full: true, +                                        numbering: ) }, +                                 text(body: [E], +                                      font: "New Computer Modern"), +                                 { text(body: [F], +                                        font: "New Computer Modern"), +                                   parbreak() }), +                      full: true, +                      numbering: ) })
test/out/layout/flow-orphan-00.out view
@@ -72,13 +72,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), -  parbreak(), -  heading(body: text(body: [Introduction]), -          level: 1), -  text(body: [This is the start and it goes on.]), -  parbreak() }+                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), +                 parbreak(), +                 heading(body: text(body: [Introduction]), +                         level: 1), +                 text(body: [This is the start and it goes on.]), +                 parbreak() })
test/out/layout/flow-orphan-01.out view
@@ -113,40 +113,40 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ ], -       color: rgb(0%,45%,85%,100%), -       weight: 700), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation], -       color: rgb(0%,45%,85%,100%), -       weight: 700), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], -       color: rgb(0%,45%,85%,100%), -       weight: 700), -  parbreak(), -  text(body: [+                      color: rgb(0%,45%,85%,100%), +                      weight: 700), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation], +                      color: rgb(0%,45%,85%,100%), +                      weight: 700), +                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], +                      color: rgb(0%,45%,85%,100%), +                      weight: 700), +                 parbreak(), +                 text(body: [ ], -       color: rgb(52%,7%,29%,100%), -       weight: 700), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod], -       color: rgb(52%,7%,29%,100%), -       weight: 700), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt], -       color: rgb(52%,7%,29%,100%), -       weight: 700), -  parbreak(), -  text(body: [+                      color: rgb(52%,7%,29%,100%), +                      weight: 700), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod], +                      color: rgb(52%,7%,29%,100%), +                      weight: 700), +                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt], +                      color: rgb(52%,7%,29%,100%), +                      weight: 700), +                 parbreak(), +                 text(body: [ ], -       color: rgb(23%,60%,43%,100%), -       weight: 700), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do], -       color: rgb(23%,60%,43%,100%), -       weight: 700), -  parbreak() }+                      color: rgb(23%,60%,43%,100%), +                      weight: 700), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do], +                      color: rgb(23%,60%,43%,100%), +                      weight: 700), +                 parbreak() })
test/out/layout/grid-1-00.out view
@@ -179,52 +179,52 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (rect(fill: rgb(16%,38%,10%,100%), -                       height: 2.0cm, -                       width: 0.5cm), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 2.0cm, -                       width: 100%), -                  rect(fill: rgb(18%,80%,25%,100%), -                       height: 2.0cm, -                       width: 100%), -                  rect(fill: rgb(100%,0%,0%,100%), -                       height: 2.0cm, -                       width: 100%), -                  rect(fill: rgb(0%,100%,0%,100%), -                       height: 2.0cm, -                       width: 100%), -                  rect(fill: rgb(0%,98%,94%,100%), -                       height: 2.0cm, -                       width: 80%), -                  rect(fill: rgb(0%,100%,0%,100%), -                       height: 2.0cm, -                       width: 1.0cm), -                  rect(fill: rgb(16%,38%,10%,100%), -                       height: 2.0cm, -                       width: 0.5cm), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 2.0cm, -                       width: 100%), -                  rect(fill: rgb(18%,80%,25%,100%), -                       height: 2.0cm, -                       width: 100%), -                  rect(fill: rgb(100%,0%,0%,100%), -                       height: 2.0cm, -                       width: 100%), -                  rect(fill: rgb(0%,100%,0%,100%), -                       height: 2.0cm, -                       width: 100%)), -       columns: (auto, -                 1.0fr, -                 3.0fr, -                 0.25cm, -                 3%, -                 2.0mm + 10%)), -  parbreak() }+                 grid(children: (rect(fill: rgb(16%,38%,10%,100%), +                                      height: 2.0cm, +                                      width: 0.5cm), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 2.0cm, +                                      width: 100%), +                                 rect(fill: rgb(18%,80%,25%,100%), +                                      height: 2.0cm, +                                      width: 100%), +                                 rect(fill: rgb(100%,0%,0%,100%), +                                      height: 2.0cm, +                                      width: 100%), +                                 rect(fill: rgb(0%,100%,0%,100%), +                                      height: 2.0cm, +                                      width: 100%), +                                 rect(fill: rgb(0%,98%,94%,100%), +                                      height: 2.0cm, +                                      width: 80%), +                                 rect(fill: rgb(0%,100%,0%,100%), +                                      height: 2.0cm, +                                      width: 1.0cm), +                                 rect(fill: rgb(16%,38%,10%,100%), +                                      height: 2.0cm, +                                      width: 0.5cm), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 2.0cm, +                                      width: 100%), +                                 rect(fill: rgb(18%,80%,25%,100%), +                                      height: 2.0cm, +                                      width: 100%), +                                 rect(fill: rgb(100%,0%,0%,100%), +                                      height: 2.0cm, +                                      width: 100%), +                                 rect(fill: rgb(0%,100%,0%,100%), +                                      height: 2.0cm, +                                      width: 100%)), +                      columns: (auto, +                                1.0fr, +                                3.0fr, +                                0.25cm, +                                3%, +                                2.0mm + 10%)), +                 parbreak() })
test/out/layout/grid-1-01.out view
@@ -87,20 +87,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (rect(body: text(body: [dddaa aaa aaa]), -                       fill: rgb(13%,61%,67%,100%), -                       inset: 0.0pt), -                  rect(body: text(body: [ccc]), -                       fill: rgb(18%,80%,25%,100%), -                       inset: 0.0pt), -                  rect(body: text(body: [aaa]), -                       fill: rgb(86%,86%,86%,100%), -                       inset: 0.0pt)), -       column-gutter: 1.0fr, -       columns: (auto, auto, 40%), -       row-gutter: 1.0fr), -  parbreak() }+                 grid(children: (rect(body: text(body: [dddaa aaa aaa]), +                                      fill: rgb(13%,61%,67%,100%), +                                      inset: 0.0pt), +                                 rect(body: text(body: [ccc]), +                                      fill: rgb(18%,80%,25%,100%), +                                      inset: 0.0pt), +                                 rect(body: text(body: [aaa]), +                                      fill: rgb(86%,86%,86%,100%), +                                      inset: 0.0pt)), +                      column-gutter: 1.0fr, +                      columns: (auto, auto, 40%), +                      row-gutter: 1.0fr), +                 parbreak() })
test/out/layout/grid-1-02.out view
@@ -86,14 +86,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: ({  }, -                  align(alignment: center, -                        body: text(body: [A bit more to the top])), -                  {  }), -       columns: (1.0fr), -       rows: (1.0fr, auto, 2.0fr)), -  parbreak() }+                 grid(children: ({  }, +                                 align(alignment: center, +                                       body: text(body: [A bit more to the top])), +                                 {  }), +                      columns: (1.0fr), +                      rows: (1.0fr, auto, 2.0fr)), +                 parbreak() })
test/out/layout/grid-2-00.out view
@@ -133,33 +133,33 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (strong(body: text(body: [Quarter])), -                  text(body: [Expenditure]), -                  text(body: [External Revenue]), -                  text(body: [Financial ROI]), -                  emph(body: text(body: [total])), -                  strong(body: text(body: [Q1])), -                  text(body: [173,472.57 $]), -                  text(body: [472,860.91 $]), -                  text(body: [51,286.84 $]), -                  emph(body: text(body: [350,675.18 $])), -                  strong(body: text(body: [Q2])), -                  text(body: [93,382.12 $]), -                  text(body: [439,382.85 $]), -                  text(body: [-1,134.30 $]), -                  emph(body: text(body: [344,866.43 $])), -                  strong(body: text(body: [Q3])), -                  text(body: [96,421.49 $]), -                  text(body: [238,583.54 $]), -                  text(body: [3,497.12 $]), -                  emph(body: text(body: [145,659.17 $]))), -       column-gutter: (2.0fr, -                       1.0fr, -                       1.0fr), -       columns: 5, -       row-gutter: 6.0pt), -  parbreak() }+                 grid(children: (strong(body: text(body: [Quarter])), +                                 text(body: [Expenditure]), +                                 text(body: [External Revenue]), +                                 text(body: [Financial ROI]), +                                 emph(body: text(body: [total])), +                                 strong(body: text(body: [Q1])), +                                 text(body: [173,472.57 $]), +                                 text(body: [472,860.91 $]), +                                 text(body: [51,286.84 $]), +                                 emph(body: text(body: [350,675.18 $])), +                                 strong(body: text(body: [Q2])), +                                 text(body: [93,382.12 $]), +                                 text(body: [439,382.85 $]), +                                 text(body: [-1,134.30 $]), +                                 emph(body: text(body: [344,866.43 $])), +                                 strong(body: text(body: [Q3])), +                                 text(body: [96,421.49 $]), +                                 text(body: [238,583.54 $]), +                                 text(body: [3,497.12 $]), +                                 emph(body: text(body: [145,659.17 $]))), +                      column-gutter: (2.0fr, +                                      1.0fr, +                                      1.0fr), +                      columns: 5, +                      row-gutter: 6.0pt), +                 parbreak() })
test/out/layout/grid-3-00.out view
@@ -113,18 +113,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: ({ text(body: [Lorem ipsum dolor sit amet.]), -                    parbreak(), -                    text(body: [Aenean commodo ligula eget dolor. Aenean massa. Penatibus et magnis.]) }, -                  text(body: [Text that is rather short]), -                  text(body: [Fireflies]), -                  text(body: [Critical]), -                  text(body: [Decorum]), -                  text(body: [Rampage])), -       columns: 2, -       row-gutter: 8.0pt), -  parbreak() }+                 grid(children: ({ text(body: [Lorem ipsum dolor sit amet.]), +                                   parbreak(), +                                   text(body: [Aenean commodo ligula eget dolor. Aenean massa. Penatibus et magnis.]) }, +                                 text(body: [Text that is rather short]), +                                 text(body: [Fireflies]), +                                 text(body: [Critical]), +                                 text(body: [Decorum]), +                                 text(body: [Rampage])), +                      columns: 2, +                      row-gutter: 8.0pt), +                 parbreak() })
test/out/layout/grid-3-01.out view
@@ -103,34 +103,34 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (align(alignment: top, -                        body: image(path: "test/assets/files/rhino.png")), -                  align(alignment: top, -                        body: rect(body: align(alignment: right, -                                               body: text(body: [LoL])), -                                   fill: rgb(13%,61%,67%,100%), -                                   inset: 0.0pt)), -                  text(body: [rofl]), -                  { linebreak(), -                    text(body: [A]), -                    linebreak(), -                    text(body: [A]), -                    linebreak(), -                    text(body: [A]) }, -                  { text(body: [Ha!]), -                    linebreak(), -                    text(body: [Ha!]), -                    linebreak(), -                    text(body: [Ha!]), -                    linebreak() }), -       column-gutter: (0.0pt, 10%), -       columns: (1.0fr, -                 1.0fr, -                 1.0fr, -                 1.0fr), -       row-gutter: 10.0pt), -  parbreak() }+                 grid(children: (align(alignment: top, +                                       body: image(path: "test/assets/files/rhino.png")), +                                 align(alignment: top, +                                       body: rect(body: align(alignment: right, +                                                              body: text(body: [LoL])), +                                                  fill: rgb(13%,61%,67%,100%), +                                                  inset: 0.0pt)), +                                 text(body: [rofl]), +                                 { linebreak(), +                                   text(body: [A]), +                                   linebreak(), +                                   text(body: [A]), +                                   linebreak(), +                                   text(body: [A]) }, +                                 { text(body: [Ha!]), +                                   linebreak(), +                                   text(body: [Ha!]), +                                   linebreak(), +                                   text(body: [Ha!]), +                                   linebreak() }), +                      column-gutter: (0.0pt, 10%), +                      columns: (1.0fr, +                                1.0fr, +                                1.0fr, +                                1.0fr), +                      row-gutter: 10.0pt), +                 parbreak() })
test/out/layout/grid-3-02.out view
@@ -82,38 +82,38 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (text(body: [A]), -                  text(body: [B]), -                  text(body: [C]), -                  { text(body: [Ha!]), -                    linebreak(), -                    text(body: [Ha!]), -                    linebreak(), -                    text(body: [Ha!]), -                    linebreak(), -                    text(body: [Ha!]), -                    linebreak(), -                    text(body: [Ha!]), -                    linebreak(), -                    text(body: [Ha!]), -                    linebreak() }, -                  text(body: [rofl]), -                  { linebreak(), -                    text(body: [A]), -                    linebreak(), -                    text(body: [A]), -                    linebreak(), -                    text(body: [A]) }, -                  text(body: [hello]), -                  text(body: [darkness]), -                  text(body: [my old])), -       column-gutter: (0.0pt, 10%), -       columns: (1.0fr, -                 1.0fr, -                 1.0fr), -       row-gutter: 8.0pt), -  parbreak() }+                 grid(children: (text(body: [A]), +                                 text(body: [B]), +                                 text(body: [C]), +                                 { text(body: [Ha!]), +                                   linebreak(), +                                   text(body: [Ha!]), +                                   linebreak(), +                                   text(body: [Ha!]), +                                   linebreak(), +                                   text(body: [Ha!]), +                                   linebreak(), +                                   text(body: [Ha!]), +                                   linebreak(), +                                   text(body: [Ha!]), +                                   linebreak() }, +                                 text(body: [rofl]), +                                 { linebreak(), +                                   text(body: [A]), +                                   linebreak(), +                                   text(body: [A]), +                                   linebreak(), +                                   text(body: [A]) }, +                                 text(body: [hello]), +                                 text(body: [darkness]), +                                 text(body: [my old])), +                      column-gutter: (0.0pt, 10%), +                      columns: (1.0fr, +                                1.0fr, +                                1.0fr), +                      row-gutter: 8.0pt), +                 parbreak() })
test/out/layout/grid-3-03.out view
@@ -105,42 +105,42 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (text(body: [A]), -                  text(body: [B]), -                  text(body: [C]), -                  text(body: [D]), -                  grid(children: (text(body: [A]), -                                  text(body: [B]), -                                  { text(body: [C]), -                                    linebreak(), -                                    text(body: [C]), -                                    linebreak(), -                                    text(body: [C]), -                                    linebreak() }, -                                  text(body: [D])), -                       columns: 2), -                  align(alignment: top, -                        body: rect(body: align(alignment: right, -                                               body: text(body: [LoL])), -                                   fill: rgb(13%,61%,67%,100%), -                                   inset: 0.0pt)), -                  text(body: [rofl]), -                  { text(body: [E]), -                    linebreak(), -                    text(body: [E]), -                    linebreak(), -                    text(body: [E]), -                    linebreak(), -                    text(body: [E]), -                    linebreak() }), -       column-gutter: (0.0pt, 10%), -       columns: (1.0fr, -                 1.0fr, -                 1.0fr, -                 1.0fr), -       row-gutter: 10.0pt), -  parbreak() }+                 grid(children: (text(body: [A]), +                                 text(body: [B]), +                                 text(body: [C]), +                                 text(body: [D]), +                                 grid(children: (text(body: [A]), +                                                 text(body: [B]), +                                                 { text(body: [C]), +                                                   linebreak(), +                                                   text(body: [C]), +                                                   linebreak(), +                                                   text(body: [C]), +                                                   linebreak() }, +                                                 text(body: [D])), +                                      columns: 2), +                                 align(alignment: top, +                                       body: rect(body: align(alignment: right, +                                                              body: text(body: [LoL])), +                                                  fill: rgb(13%,61%,67%,100%), +                                                  inset: 0.0pt)), +                                 text(body: [rofl]), +                                 { text(body: [E]), +                                   linebreak(), +                                   text(body: [E]), +                                   linebreak(), +                                   text(body: [E]), +                                   linebreak(), +                                   text(body: [E]), +                                   linebreak() }), +                      column-gutter: (0.0pt, 10%), +                      columns: (1.0fr, +                                1.0fr, +                                1.0fr, +                                1.0fr), +                      row-gutter: 10.0pt), +                 parbreak() })
test/out/layout/grid-4-00.out view
@@ -77,17 +77,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  grid(children: (rect(fill: rgb(18%,80%,25%,100%), -                       height: 0.5cm, -                       width: 50%), -                  rect(fill: rgb(13%,61%,67%,100%), -                       height: 0.5cm, -                       width: 100%), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 0.5cm, -                       width: 50%)), -       columns: (auto, 60%), -       rows: (auto, auto)), -  parbreak() }+                 grid(children: (rect(fill: rgb(18%,80%,25%,100%), +                                      height: 0.5cm, +                                      width: 50%), +                                 rect(fill: rgb(13%,61%,67%,100%), +                                      height: 0.5cm, +                                      width: 100%), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 0.5cm, +                                      width: 50%)), +                      columns: (auto, 60%), +                      rows: (auto, auto)), +                 parbreak() })
test/out/layout/grid-4-01.out view
@@ -79,19 +79,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  grid(children: (rect(fill: rgb(18%,80%,25%,100%), -                       width: 50%), -                  rect(fill: rgb(100%,25%,21%,100%), -                       width: 50%), -                  rect(fill: rgb(18%,80%,25%,100%), -                       width: 50%), -                  rect(fill: rgb(100%,25%,21%,100%), -                       width: 50%)), -       columns: (1.0fr, -                 1.0fr, -                 1.0fr, -                 1.0fr), -       rows: (1.0cm)), -  parbreak() }+                 grid(children: (rect(fill: rgb(18%,80%,25%,100%), +                                      width: 50%), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      width: 50%), +                                 rect(fill: rgb(18%,80%,25%,100%), +                                      width: 50%), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      width: 50%)), +                      columns: (1.0fr, +                                1.0fr, +                                1.0fr, +                                1.0fr), +                      rows: (1.0cm)), +                 parbreak() })
test/out/layout/grid-4-02.out view
@@ -94,24 +94,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (rect(fill: rgb(18%,80%,25%,100%), -                       height: 50%, -                       width: 100%), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 50%, -                       width: 100%), -                  rect(fill: rgb(18%,80%,25%,100%), -                       height: 50%, -                       width: 100%), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 25%, -                       width: 100%)), -       rows: (1.0cm, -              1.0fr, -              1.0fr, -              auto)), -  parbreak() }+                 grid(children: (rect(fill: rgb(18%,80%,25%,100%), +                                      height: 50%, +                                      width: 100%), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 50%, +                                      width: 100%), +                                 rect(fill: rgb(18%,80%,25%,100%), +                                      height: 50%, +                                      width: 100%), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 25%, +                                      width: 100%)), +                      rows: (1.0cm, +                             1.0fr, +                             1.0fr, +                             auto)), +                 parbreak() })
test/out/layout/grid-5-00.out view
@@ -71,18 +71,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: ({ text(body: [+                 grid(children: ({ text(body: [ Hello ]), -                    linebreak(), -                    text(body: [Hello ]), -                    linebreak(), -                    text(body: [Hello ]), -                    linebreak(), -                    text(body: [+                                   linebreak(), +                                   text(body: [Hello ]), +                                   linebreak(), +                                   text(body: [Hello ]), +                                   linebreak(), +                                   text(body: [ World]), -                    parbreak() })), -  parbreak() }+                                   parbreak() })), +                 parbreak() })
test/out/layout/grid-5-01.out view
@@ -101,28 +101,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (align(alignment: bottom, -                        body: text(body: [A])), -                  { text(body: [+                 grid(children: (align(alignment: bottom, +                                       body: text(body: [A])), +                                 { text(body: [ Top ]), -                    align(alignment: bottom, -                          body: { text(body: [+                                   align(alignment: bottom, +                                         body: { text(body: [ Bottom ]), -                                  linebreak(), -                                  text(body: [Bottom ]), -                                  linebreak(), -                                  v(amount: 0.0pt), -                                  text(body: [+                                                 linebreak(), +                                                 text(body: [Bottom ]), +                                                 linebreak(), +                                                 v(amount: 0.0pt), +                                                 text(body: [ Top]), -                                  parbreak() }), -                    parbreak() }, -                  align(alignment: top, -                        body: text(body: [B]))), -       columns: 2, -       gutter: 10.0pt), -  parbreak() }+                                                 parbreak() }), +                                   parbreak() }, +                                 align(alignment: top, +                                       body: text(body: [B]))), +                      columns: 2, +                      gutter: 10.0pt), +                 parbreak() })
test/out/layout/grid-auto-shrink-00.out view
@@ -120,20 +120,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       size: 11.0pt), -  table(children: (text(body: [Hello!], -                        size: 11.0pt), -                   text(body: [Hello there, my friend!], -                        size: 11.0pt), -                   text(body: [Hello there, my friends! Hi!], -                        size: 11.0pt), -                   text(body: [Hello there, my friends! Hi! What is going on right now?], -                        size: 11.0pt)), -        columns: 4), -  parbreak() }+                      size: 11.0pt), +                 table(children: (text(body: [Hello!], +                                       size: 11.0pt), +                                  text(body: [Hello there, my friend!], +                                       size: 11.0pt), +                                  text(body: [Hello there, my friends! Hi!], +                                       size: 11.0pt), +                                  text(body: [Hello there, my friends! Hi! What is going on right now?], +                                       size: 11.0pt)), +                       columns: 4), +                 parbreak() })
test/out/layout/grid-rtl-00.out view
@@ -54,10 +54,10 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], dir: rtl), -  list(children: ({ text(body: [מימין לשמאל], -                         dir: rtl), -                    parbreak() })) }+                 list(children: ({ text(body: [מימין לשמאל], +                                        dir: rtl), +                                   parbreak() })) })
test/out/layout/grid-rtl-01.out view
@@ -60,14 +60,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], dir: rtl), -  table(children: (text(body: [A], -                        dir: rtl), -                   text(body: [B], dir: rtl), -                   text(body: [C], dir: rtl), -                   text(body: [D], dir: rtl)), -        columns: 2), -  parbreak() }+                 table(children: (text(body: [A], +                                       dir: rtl), +                                  text(body: [B], +                                       dir: rtl), +                                  text(body: [C], +                                       dir: rtl), +                                  text(body: [D], +                                       dir: rtl)), +                       columns: 2), +                 parbreak() })
test/out/layout/hide-00.out view
@@ -70,14 +70,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ AB ]), -  h(amount: 1.0fr), -  text(body: [ CD ]), -  linebreak(), -  hide(body: text(body: [A])), -  text(body: [B ]), -  h(amount: 1.0fr), -  text(body: [ C]), -  hide(body: text(body: [D])), -  parbreak() }+                 h(amount: 1.0fr), +                 text(body: [ CD ]), +                 linebreak(), +                 hide(body: text(body: [A])), +                 text(body: [B ]), +                 h(amount: 1.0fr), +                 text(body: [ C]), +                 hide(body: text(body: [D])), +                 parbreak() })
test/out/layout/list-00.out view
@@ -53,12 +53,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  emph(body: text(body: [Shopping list])), -  text(body: [+                 emph(body: text(body: [Shopping list])), +                 text(body: [ ]), -  list(children: (text(body: [Apples]), -                  text(body: [Potatoes]), -                  text(body: [Juice]))), -  parbreak() }+                 list(children: (text(body: [Apples]), +                                 text(body: [Potatoes]), +                                 text(body: [Juice]))), +                 parbreak() })
test/out/layout/list-01.out view
@@ -98,18 +98,18 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  list(children: ({ text(body: [First level.]), -                    parbreak(), -                    list(children: ({ text(body: [Second level.+                 list(children: ({ text(body: [First level.]), +                                   parbreak(), +                                   list(children: ({ text(body: [Second level. There are multiple paragraphs.]), -                                      parbreak(), -                                      list(children: (text(body: [Third level.+                                                     parbreak(), +                                                     list(children: (text(body: [Third level. ]))), -                                      text(body: [Still the same bullet point.+                                                     text(body: [Still the same bullet point. ]) }, -                                    text(body: [Still level 2.+                                                   text(body: [Still level 2. ]))) }, -                  { text(body: [At the top.]), -                    parbreak() })) }+                                 { text(body: [At the top.]), +                                   parbreak() })) })
test/out/layout/list-02.out view
@@ -67,10 +67,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ - Level 1 - Level ]), -  text(body: [+                 text(body: [ 2 through content block]), -  parbreak(), -  parbreak() }+                 parbreak(), +                 parbreak() })
test/out/layout/list-03.out view
@@ -46,8 +46,8 @@     [ Text "is" , Space , Text "fine" , Text "." , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  list(children: (text(body: [Top-level indent]), -                  { text(body: [is fine.]), -                    parbreak() })) }+                 list(children: (text(body: [Top-level indent]), +                                 { text(body: [is fine.]), +                                   parbreak() })) })
test/out/layout/list-04.out view
@@ -50,11 +50,11 @@ , BulletListItem [ Text "D" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  list(children: ({ text(body: [A+                 list(children: ({ text(body: [A ]), -                    list(children: (text(body: [B]), -                                    text(body: [C]))) }, -                  { text(body: [D]), -                    parbreak() })) }+                                   list(children: (text(body: [B]), +                                                   text(body: [C]))) }, +                                 { text(body: [D]), +                                   parbreak() })) })
test/out/layout/list-05.out view
@@ -63,9 +63,9 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [ - A with 1 tab+                 text(body: [ - A with 1 tab ]), -  list(children: ({ text(body: [B with 2 tabs]), -                    parbreak() })) }+                 list(children: ({ text(body: [B with 2 tabs]), +                                   parbreak() })) })
test/out/layout/list-06.out view
@@ -63,9 +63,9 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [ - A with 2 spaces+                 text(body: [ - A with 2 spaces ]), -  list(children: ({ text(body: [B with 2 tabs]), -                    parbreak() })) }+                 list(children: ({ text(body: [B with 2 tabs]), +                                   parbreak() })) })
test/out/layout/list-07.out view
@@ -53,9 +53,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  list(children: ({  })), -  text(body: [Not in list+                 list(children: ({  })), +                 text(body: [Not in list -Nope]), -  parbreak() }+                 parbreak() })
test/out/layout/list-08.out view
@@ -57,12 +57,12 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  list(children: ({ text(body: [ABCDEF]), -                    linebreak(), -                    text(body: [GHIJKL]), -                    linebreak(), -                    text(body: [MNOPQR]), -                    parbreak() })) }+                 parbreak(), +                 list(children: ({ text(body: [ABCDEF]), +                                   linebreak(), +                                   text(body: [GHIJKL]), +                                   linebreak(), +                                   text(body: [MNOPQR]), +                                   parbreak() })) })
test/out/layout/list-attach-00.out view
@@ -63,12 +63,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Attached to:+                 text(body: [Attached to: ]), -  list(children: (text(body: [the bottom]), -                  text(body: [of the paragraph+                 list(children: (text(body: [the bottom]), +                                 text(body: [of the paragraph ]))), -  text(body: [Next paragraph.]), -  parbreak() }+                 text(body: [Next paragraph.]), +                 parbreak() })
test/out/layout/list-attach-01.out view
@@ -58,13 +58,13 @@ , BulletListItem [ Text "B" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Hello ]), -  list(children: (text(body: [A]))), -  text(body: [World+                 list(children: (text(body: [A]))), +                 text(body: [World ]), -  list(children: ({ text(body: [B]), -                    parbreak() })) }+                 list(children: ({ text(body: [B]), +                                   parbreak() })) })
test/out/layout/list-attach-02.out view
@@ -50,13 +50,13 @@ , BulletListItem [ Text "B" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Hello]), -  parbreak(), -  list(children: (text(body: [A+                 text(body: [Hello]), +                 parbreak(), +                 list(children: (text(body: [A ]))), -  text(body: [World+                 text(body: [World ]), -  list(children: ({ text(body: [B]), -                    parbreak() })) }+                 list(children: ({ text(body: [B]), +                                   parbreak() })) })
test/out/layout/list-attach-03.out view
@@ -62,16 +62,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Hello ]), -  list(children: (text(body: [A]))), -  text(body: [World]), -  parbreak(), -  list(children: (text(body: [B]), -                  text(body: [C+                 list(children: (text(body: [A]))), +                 text(body: [World]), +                 parbreak(), +                 list(children: (text(body: [B]), +                                 text(body: [C ]))), -  text(body: [More.]), -  parbreak() }+                 text(body: [More.]), +                 parbreak() })
test/out/layout/list-attach-04.out view
@@ -57,13 +57,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Hello ]), -  list(children: (text(body: [A+                 list(children: (text(body: [A ]), -                  text(body: [B]))), -  text(body: [World]), -  parbreak() }+                                 text(body: [B]))), +                 text(body: [World]), +                 parbreak() })
test/out/layout/list-attach-05.out view
@@ -56,13 +56,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Hello+                 text(body: [Hello ]), -  list(children: (text(body: [A]), -                  text(body: [B])), -       tight: false), -  text(body: [+                 list(children: (text(body: [A]), +                                 text(body: [B])), +                      tight: false), +                 text(body: [ World]), -  parbreak() }+                 parbreak() })
test/out/layout/list-marker-00.out view
@@ -52,11 +52,11 @@ , BulletListItem [ Text "B" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  list(children: (text(body: [A]), -                  { text(body: [B]), -                    parbreak() }), -       marker: text(body: [–])) }+                 list(children: (text(body: [A]), +                                 { text(body: [B]), +                                   parbreak() }), +                      marker: text(body: [–])) })
test/out/layout/list-marker-01.out view
@@ -61,19 +61,19 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  list(children: ({ text(body: [A+                 list(children: ({ text(body: [A ]), -                    list(children: ({ text(body: [B+                                   list(children: ({ text(body: [B ]), -                                      list(children: ({ text(body: [C]), -                                                        parbreak() }), -                                           marker: (text(body: [–]), -                                                    text(body: [•]))) }), -                         marker: (text(body: [–]), -                                  text(body: [•]))) }), -       marker: (text(body: [–]), -                text(body: [•]))) }+                                                     list(children: ({ text(body: [C]), +                                                                       parbreak() }), +                                                          marker: (text(body: [–]), +                                                                   text(body: [•]))) }), +                                        marker: (text(body: [–]), +                                                 text(body: [•]))) }), +                      marker: (text(body: [–]), +                               text(body: [•]))) })
test/out/layout/list-marker-02.out view
@@ -71,19 +71,19 @@ , BulletListItem [ Text "F" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  list(children: (text(body: [A]), -                  { text(body: [B+                 list(children: (text(body: [A]), +                                 { text(body: [B ]), -                    list(children: (text(body: [C]), -                                    { text(body: [D+                                   list(children: (text(body: [C]), +                                                   { text(body: [D ]), -                                      list(children: (text(body: [E])), -                                           marker: ) }), -                         marker: ) }, -                  { text(body: [F]), -                    parbreak() }), -       marker: ) }+                                                     list(children: (text(body: [E])), +                                                          marker: ) }), +                                        marker: ) }, +                                 { text(body: [F]), +                                   parbreak() }), +                      marker: ) })
test/out/layout/list-marker-03.out view
@@ -62,11 +62,11 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  list(children: (text(body: [Bare hyphen is]), -                  { text(body: [a bad marker]), -                    parbreak() }), -       marker: list(children: ({  }))) }+                 list(children: (text(body: [Bare hyphen is]), +                                 { text(body: [a bad marker]), +                                   parbreak() }), +                      marker: list(children: ({  }))) })
test/out/layout/pad-00.out view
@@ -101,24 +101,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  pad(body: text(body: [Indented!]), -      left: 10.0pt), -  parbreak(), -  text(body: [+                 pad(body: text(body: [Indented!]), +                     left: 10.0pt), +                 parbreak(), +                 text(body: [ ]), -  rect(body: pad(body: rect(fill: rgb(92%,32%,47%,100%), -                            height: 20.0pt, -                            inset: 0.0pt, -                            width: 20.0pt), -                 rest: 10.0pt, -                 right: 20.0pt), -       fill: rgb(18%,80%,25%,100%), -       inset: 0.0pt), -  parbreak(), -  text(body: [Hi ]), -  box(body: pad(body: text(body: [A]), -                left: 10.0pt)), -  text(body: [ there]), -  parbreak() }+                 rect(body: pad(body: rect(fill: rgb(92%,32%,47%,100%), +                                           height: 20.0pt, +                                           inset: 0.0pt, +                                           width: 20.0pt), +                                rest: 10.0pt, +                                right: 20.0pt), +                      fill: rgb(18%,80%,25%,100%), +                      inset: 0.0pt), +                 parbreak(), +                 text(body: [Hi ]), +                 box(body: pad(body: text(body: [A]), +                               left: 10.0pt)), +                 text(body: [ there]), +                 parbreak() })
test/out/layout/pad-01.out view
@@ -62,11 +62,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  pad(body: { text(body: [PL ]), -              h(amount: 1.0fr), -              text(body: [ PR]) }, -      left: 10.0pt, -      right: 10.0pt), -  parbreak() }+                 pad(body: { text(body: [PL ]), +                             h(amount: 1.0fr), +                             text(body: [ PR]) }, +                     left: 10.0pt, +                     right: 10.0pt), +                 parbreak() })
test/out/layout/pad-02.out view
@@ -79,18 +79,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  align(alignment: left, -        body: text(body: [Before])), -  text(body: [+                 align(alignment: left, +                       body: text(body: [Before])), +                 text(body: [ ]), -  pad(body: image(path: "test/assets/files/tiger.jpg"), -      rest: 10.0pt), -  text(body: [+                 pad(body: image(path: "test/assets/files/tiger.jpg"), +                     rest: 10.0pt), +                 text(body: [ ]), -  align(alignment: right, -        body: text(body: [After])), -  parbreak() }+                 align(alignment: right, +                       body: text(body: [After])), +                 parbreak() })
test/out/layout/pad-03.out view
@@ -49,7 +49,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  pad(body: {  }, rest: 50%), -  parbreak() }+                 pad(body: {  }, rest: 50%), +                 parbreak() })
test/out/layout/page-00.out view
@@ -48,7 +48,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  page(body: {  }), -  parbreak() }+                 page(body: {  }), +                 parbreak() })
test/out/layout/page-01.out view
@@ -54,9 +54,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  page(body: [a11], -       fill: rgb(18%,80%,25%,100%), -       flipped: true), -  parbreak() }+                 page(body: [a11], +                      fill: rgb(18%,80%,25%,100%), +                      flipped: true), +                 parbreak() })
test/out/layout/page-02.out view
@@ -99,14 +99,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [High]), -  text(body: [+                 text(body: [High]), +                 text(body: [ ]), -  text(body: [Wide]), -  parbreak(), -  text(body: [Flipped A11]), -  parbreak() }+                 text(body: [Wide]), +                 parbreak(), +                 text(body: [Flipped A11]), +                 parbreak() })
test/out/layout/page-03.out view
@@ -81,20 +81,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: smallcaps(body: text(body: [Typst])), -       fill: rgb(100%,100%,100%,100%), -       font: "Roboto", -       size: 15.0pt), -  text(body: [+                 text(body: smallcaps(body: text(body: [Typst])), +                      fill: rgb(100%,100%,100%,100%), +                      font: "Roboto", +                      size: 15.0pt), +                 text(body: [ ]), -  page(body: text(body: [Hi]), -       fill: none, -       height: 40.0pt, -       margin: (top: 10.0pt,-                rest: auto), -       width: 40.0pt), -  parbreak() }+                 page(body: text(body: [Hi]), +                      fill: none, +                      height: 40.0pt, +                      margin: (top: 10.0pt,+                               rest: auto), +                      width: 40.0pt), +                 parbreak() })
test/out/layout/page-04.out view
@@ -59,12 +59,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  page(body: [a11], -       fill: rgb(100%,25%,21%,100%), -       flipped: true), -  text(body: [+                 page(body: [a11], +                      fill: rgb(100%,25%,21%,100%), +                      flipped: true), +                 text(body: [ ]), -  pagebreak(), -  parbreak() }+                 pagebreak(), +                 parbreak() })
test/out/layout/page-05.out view
@@ -107,15 +107,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  page(body: { layout(func: ), -               h(amount: 1.0em), -               place(alignment: left, -                     body: rect(stroke: rgb(0%,45%,85%,100%), -                                width: 80.0pt)) }, -       height: 100.0pt, -       width: 100.0pt), -  parbreak() }+                 page(body: { layout(func: ), +                              h(amount: 1.0em), +                              place(alignment: left, +                                    body: rect(stroke: rgb(0%,45%,85%,100%), +                                               width: 80.0pt)) }, +                      height: 100.0pt, +                      width: 100.0pt), +                 parbreak() })
test/out/layout/page-margin-00.out view
@@ -79,17 +79,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  place(alignment: Axes(left, top), -        body: text(body: [TL])), -  text(body: [+                 place(alignment: Axes(left, top), +                       body: text(body: [TL])), +                 text(body: [ ]), -  place(alignment: Axes(right, bottom), -        body: text(body: [BR])), -  parbreak(), -  parbreak() }+                 place(alignment: Axes(right, bottom), +                       body: text(body: [BR])), +                 parbreak(), +                 parbreak() })
test/out/layout/page-margin-01.out view
@@ -169,28 +169,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [ ]), -  align(alignment: left, -        body: text(body: [Left])), -  text(body: [+                 text(body: [ ]), +                 align(alignment: left, +                       body: text(body: [Left])), +                 text(body: [ ]), -  text(body: [ ]), -  align(alignment: right, -        body: text(body: [Right])), -  text(body: [+                 text(body: [ ]), +                 align(alignment: right, +                       body: text(body: [Right])), +                 text(body: [ ]), -  text(body: [ ]), -  align(alignment: top, -        body: text(body: [Top])), -  text(body: [+                 text(body: [ ]), +                 align(alignment: top, +                       body: text(body: [Top])), +                 text(body: [ ]), -  text(body: [ ]), -  align(alignment: bottom, -        body: text(body: [Bottom])), -  parbreak(), -  text(body: [ Overridden]), -  parbreak() }+                 text(body: [ ]), +                 align(alignment: bottom, +                       body: text(body: [Bottom])), +                 parbreak(), +                 text(body: [ Overridden]), +                 parbreak() })
test/out/layout/page-marginals-00.out view
@@ -356,17 +356,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [But, soft! what light through yonder window breaks? It is the east, and Juliet+                 parbreak(), +                 text(body: [But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. Arise, fair sun, and kill the envious moon, Who is already sick and pale with grief, That thou her maid art far more fair than she: Be not her maid, since she is envious; Her vestal livery is but sick and green And none but fools do wear it; cast it off. It is my lady, O, it is my love! O, that she knew she were! She speaks yet she says nothing: what of that? Her eye discourses; I will answer it.]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ The END.]), -  parbreak() }+                 parbreak() })
test/out/layout/page-style-00.out view
@@ -53,6 +53,6 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/layout/page-style-01.out view
@@ -55,9 +55,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  pagebreak(), -  parbreak() }+                 pagebreak(), +                 parbreak() })
test/out/layout/page-style-02.out view
@@ -64,10 +64,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/layout/page-style-03.out view
@@ -80,19 +80,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       color: rgb(100%,100%,100%,100%), -       font: "Roboto"), -  smallcaps(body: text(body: [Typst], -                       color: rgb(100%,100%,100%,100%), -                       font: "Roboto")), -  parbreak() }+                      color: rgb(100%,100%,100%,100%), +                      font: "Roboto"), +                 smallcaps(body: text(body: [Typst], +                                      color: rgb(100%,100%,100%,100%), +                                      font: "Roboto")), +                 parbreak() })
test/out/layout/pagebreak-00.out view
@@ -48,7 +48,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  pagebreak(), -  parbreak() }+                 pagebreak(), +                 parbreak() })
test/out/layout/pagebreak-01.out view
@@ -62,12 +62,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  pagebreak(), -  text(body: [+                 pagebreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  pagebreak(), -  parbreak() }+                 pagebreak(), +                 parbreak() })
test/out/layout/pagebreak-02.out view
@@ -75,17 +75,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  pagebreak(weak: true), -  text(body: [+                 pagebreak(weak: true), +                 text(body: [ First ]), -  pagebreak(weak: true), -  text(body: [+                 pagebreak(weak: true), +                 text(body: [ Second ]), -  pagebreak(weak: true), -  parbreak() }+                 pagebreak(weak: true), +                 parbreak() })
test/out/layout/pagebreak-03.out view
@@ -102,25 +102,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [ First]), -  text(body: [+                 text(body: [ First]), +                 text(body: [ ]), -  pagebreak(), -  text(body: [+                 pagebreak(), +                 text(body: [ ]), -  pagebreak(), -  text(body: [+                 pagebreak(), +                 text(body: [ Third ]), -  page(body: {  }, -       fill: rgb(100%,25%,21%,100%), -       height: 20.0pt, -       width: 60.0pt), -  text(body: [+                 page(body: {  }, +                      fill: rgb(100%,25%,21%,100%), +                      height: 20.0pt, +                      width: 60.0pt), +                 text(body: [ Fif]), -  text(body: [th]), -  parbreak() }+                 text(body: [th]), +                 parbreak() })
test/out/layout/pagebreak-04.out view
@@ -83,29 +83,29 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ First ], -       fill: rgb(100%,100%,100%,100%)), -  pagebreak(), -  text(body: [+                      fill: rgb(100%,100%,100%,100%)), +                 pagebreak(), +                 text(body: [ ], -       fill: rgb(100%,100%,100%,100%)), -  page(body: text(body: [Second], -                  fill: rgb(100%,100%,100%,100%)), -       fill: rgb(0%,12%,24%,100%)), -  text(body: [+                      fill: rgb(100%,100%,100%,100%)), +                 page(body: text(body: [Second], +                                 fill: rgb(100%,100%,100%,100%)), +                      fill: rgb(0%,12%,24%,100%)), +                 text(body: [ ], -       fill: rgb(100%,100%,100%,100%)), -  pagebreak(weak: true), -  text(body: [+                      fill: rgb(100%,100%,100%,100%)), +                 pagebreak(weak: true), +                 text(body: [ ], -       fill: rgb(100%,100%,100%,100%)), -  page(body: text(body: [Third], -                  fill: rgb(100%,100%,100%,100%)), -       fill: rgb(0%,12%,24%,100%)), -  parbreak() }+                      fill: rgb(100%,100%,100%,100%)), +                 page(body: text(body: [Third], +                                 fill: rgb(100%,100%,100%,100%)), +                      fill: rgb(0%,12%,24%,100%)), +                 parbreak() })
test/out/layout/par-00.out view
@@ -70,8 +70,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ To the right! Where the sunlight peeks behind the mountain.]), -  parbreak() }+                 parbreak() })
test/out/layout/par-01.out view
@@ -91,12 +91,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ But, soft! what light through yonder window breaks?]), -  parbreak(), -  text(body: [It is the east, and Juliet is the sun.]), -  parbreak() }+                 parbreak(), +                 text(body: [It is the east, and Juliet is the sun.]), +                 parbreak() })
test/out/layout/par-02.out view
@@ -89,17 +89,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ Hello ]), -  table(children: (text(body: [A]), -                   text(body: [B]), -                   text(body: [C]), -                   text(body: [D])), -        columns: 4, -        fill: ), -  parbreak() }+                 table(children: (text(body: [A]), +                                  text(body: [B]), +                                  text(body: [C]), +                                  text(body: [D])), +                       columns: 4, +                       fill: ), +                 parbreak() })
test/out/layout/par-03.out view
@@ -73,18 +73,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  raw(block: true, -      lang: "rust", -      text: "fn main() {}\n"), -  parbreak(), -  list(children: (text(body: [List+                 parbreak(), +                 raw(block: true, +                     lang: "rust", +                     text: "fn main() {}\n"), +                 parbreak(), +                 list(children: (text(body: [List ]))), -  text(body: [Paragraph]), -  parbreak() }+                 text(body: [Paragraph]), +                 parbreak() })
test/out/layout/par-bidi-00.out view
@@ -71,14 +71,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: par(body: text(body: [Text טֶקסט])), -       lang: "he"), -  text(body: [+                 text(body: par(body: text(body: [Text טֶקסט])), +                      lang: "he"), +                 text(body: [ ]), -  text(body: par(body: text(body: [Text טֶקסט])), -       lang: "de"), -  parbreak() }+                 text(body: par(body: text(body: [Text טֶקסט])), +                      lang: "de"), +                 parbreak() })
test/out/layout/par-bidi-01.out view
@@ -93,28 +93,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: ("PT Sans", -              "Noto Sans Arabic")), -  text(body: par(body: { text(body: [أنت A]), -                         emph(body: text(body: [B])), -                         text(body: [مطرC]) }), -       font: ("PT Sans", -              "Noto Sans Arabic"), -       lang: "ar"), -  text(body: [+                      font: ("PT Sans", +                             "Noto Sans Arabic")), +                 text(body: par(body: { text(body: [أنت A]), +                                        emph(body: text(body: [B])), +                                        text(body: [مطرC]) }), +                      font: ("PT Sans", +                             "Noto Sans Arabic"), +                      lang: "ar"), +                 text(body: [ ], -       font: ("PT Sans", -              "Noto Sans Arabic")), -  text(body: par(body: { text(body: [أنت A]), -                         emph(body: text(body: [B])), -                         text(body: [مطرC]) }), -       font: ("PT Sans", -              "Noto Sans Arabic"), -       lang: "de"), -  parbreak() }+                      font: ("PT Sans", +                             "Noto Sans Arabic")), +                 text(body: par(body: { text(body: [أنت A]), +                                        emph(body: text(body: [B])), +                                        text(body: [مطرC]) }), +                      font: ("PT Sans", +                             "Noto Sans Arabic"), +                      lang: "de"), +                 parbreak() })
test/out/layout/par-bidi-02.out view
@@ -93,28 +93,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: ("Linux Libertine", -              "Noto Serif Hebrew")), -  text(body: par(body: { text(body: [Aגֶ]), -                         strong(body: text(body: [שֶׁ])), -                         text(body: [םB]) }), -       font: ("Linux Libertine", -              "Noto Serif Hebrew"), -       lang: "he"), -  text(body: [+                      font: ("Linux Libertine", +                             "Noto Serif Hebrew")), +                 text(body: par(body: { text(body: [Aגֶ]), +                                        strong(body: text(body: [שֶׁ])), +                                        text(body: [םB]) }), +                      font: ("Linux Libertine", +                             "Noto Serif Hebrew"), +                      lang: "he"), +                 text(body: [ ], -       font: ("Linux Libertine", -              "Noto Serif Hebrew")), -  text(body: par(body: { text(body: [Aגֶ]), -                         strong(body: text(body: [שֶׁ])), -                         text(body: [םB]) }), -       font: ("Linux Libertine", -              "Noto Serif Hebrew"), -       lang: "de"), -  parbreak() }+                      font: ("Linux Libertine", +                             "Noto Serif Hebrew")), +                 text(body: par(body: { text(body: [Aגֶ]), +                                        strong(body: text(body: [שֶׁ])), +                                        text(body: [םB]) }), +                      font: ("Linux Libertine", +                             "Noto Serif Hebrew"), +                      lang: "de"), +                 parbreak() })
test/out/layout/par-bidi-03.out view
@@ -57,9 +57,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ א⁦A⁧Bב⁩?], -       dir: rtl), -  parbreak() }+                      dir: rtl), +                 parbreak() })
test/out/layout/par-bidi-04.out view
@@ -74,16 +74,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Life المطر هو الحياة ], -       font: ("Noto Sans Arabic", -              "PT Sans"), -       lang: "ar"), -  linebreak(), -  text(body: [الحياة تمطر is rain.], -       font: ("Noto Sans Arabic", -              "PT Sans"), -       lang: "ar"), -  parbreak() }+                      font: ("Noto Sans Arabic", +                             "PT Sans"), +                      lang: "ar"), +                 linebreak(), +                 text(body: [الحياة تمطر is rain.], +                      font: ("Noto Sans Arabic", +                             "PT Sans"), +                      lang: "ar"), +                 parbreak() })
test/out/layout/par-bidi-05.out view
@@ -63,13 +63,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [L ]), -  h(amount: 1.0cm), -  text(body: [ ריווחR ]), -  linebreak(), -  text(body: [Lריווח ]), -  h(amount: 1.0cm), -  text(body: [ R]), -  parbreak() }+                 text(body: [L ]), +                 h(amount: 1.0cm), +                 text(body: [ ריווחR ]), +                 linebreak(), +                 text(body: [Lריווח ]), +                 h(amount: 1.0cm), +                 text(body: [ R]), +                 parbreak() })
test/out/layout/par-bidi-06.out view
@@ -64,13 +64,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ קרנפיםRh], -       lang: "he"), -  box(body: image(height: 11.0pt, -                  path: "test/assets/files/rhino.png")), -  text(body: [inoחיים], -       lang: "he"), -  parbreak() }+                      lang: "he"), +                 box(body: image(height: 11.0pt, +                                 path: "test/assets/files/rhino.png")), +                 text(body: [inoחיים], +                      lang: "he"), +                 parbreak() })
test/out/layout/par-bidi-07.out view
@@ -57,11 +57,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [الغالب ]), -  h(amount: 70.0pt), -  text(body: [ ن]), -  text(body: [ ]), -  text(body: [ة]), -  parbreak() }+                 text(body: [الغالب ]), +                 h(amount: 70.0pt), +                 text(body: [ ن]), +                 text(body: [ ]), +                 text(body: [ة]), +                 parbreak() })
test/out/layout/par-indent-00.out view
@@ -211,55 +211,55 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [The first paragraph has no indent.]), -  parbreak(), -  text(body: [But the second one does.]), -  parbreak(), -  box(body: image(height: 6.0pt, -                  path: "test/assets/files/tiger.jpg")), -  text(body: [+                 parbreak(), +                 text(body: [The first paragraph has no indent.]), +                 parbreak(), +                 text(body: [But the second one does.]), +                 parbreak(), +                 box(body: image(height: 6.0pt, +                                 path: "test/assets/files/tiger.jpg")), +                 text(body: [ starts a paragraph, also with indent.]), -  parbreak(), -  align(alignment: center, -        body: image(path: "test/assets/files/rhino.png", -                    width: 1.0cm)), -  parbreak(), -  heading(body: text(body: [Headings]), -          level: 1), -  list(children: (text(body: [And lists.]), -                  { text(body: [Have no indent.]), -                    parbreak(), -                    text(body: [Except if you have another paragraph in them.+                 parbreak(), +                 align(alignment: center, +                       body: image(path: "test/assets/files/rhino.png", +                                   width: 1.0cm)), +                 parbreak(), +                 heading(body: text(body: [Headings]), +                         level: 1), +                 list(children: (text(body: [And lists.]), +                                 { text(body: [Have no indent.]), +                                   parbreak(), +                                   text(body: [Except if you have another paragraph in them. ]) })), -  text(body: [+                 text(body: [ ], -       font: ("Noto Sans Arabic", -              "Linux Libertine"), -       lang: "ar", -       size: 8.0pt), -  parbreak(), -  heading(body: text(body: [Arabic], -                     font: ("Noto Sans Arabic", -                            "Linux Libertine"), -                     lang: "ar", -                     size: 8.0pt), -          level: 1), -  text(body: [دع النص يمطر عليك], -       font: ("Noto Sans Arabic", -              "Linux Libertine"), -       lang: "ar", -       size: 8.0pt), -  parbreak(), -  text(body: [ثم يصبح النص رطبًا وقابل للطرق ويبدو المستند رائعًا.], -       font: ("Noto Sans Arabic", -              "Linux Libertine"), -       lang: "ar", -       size: 8.0pt), -  parbreak() }+                      font: ("Noto Sans Arabic", +                             "Linux Libertine"), +                      lang: "ar", +                      size: 8.0pt), +                 parbreak(), +                 heading(body: text(body: [Arabic], +                                    font: ("Noto Sans Arabic", +                                           "Linux Libertine"), +                                    lang: "ar", +                                    size: 8.0pt), +                         level: 1), +                 text(body: [دع النص يمطر عليك], +                      font: ("Noto Sans Arabic", +                             "Linux Libertine"), +                      lang: "ar", +                      size: 8.0pt), +                 parbreak(), +                 text(body: [ثم يصبح النص رطبًا وقابل للطرق ويبدو المستند رائعًا.], +                      font: ("Noto Sans Arabic", +                             "Linux Libertine"), +                      lang: "ar", +                      size: 8.0pt), +                 parbreak() })
test/out/layout/par-indent-01.out view
@@ -71,10 +71,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Why would anybody ever …]), -  parbreak(), -  text(body: [… want spacing and indent?]), -  parbreak() }+                 parbreak(), +                 text(body: [… want spacing and indent?]), +                 parbreak() })
test/out/layout/par-indent-02.out view
@@ -58,9 +58,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), -  parbreak() }+                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), +                 parbreak() })
test/out/layout/par-indent-03.out view
@@ -64,10 +64,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Welcome ]), -  linebreak(), -  text(body: [here. Does this work well?]), -  parbreak() }+                 linebreak(), +                 text(body: [here. Does this work well?]), +                 parbreak() })
test/out/layout/par-indent-04.out view
@@ -91,12 +91,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ لآن وقد أظلم الليل وبدأت النجوم تنضخ وجه الطبيعة التي أعْيَتْ من طول ما انبعثت في النهار], -       dir: rtl), -  parbreak() }+                      dir: rtl), +                 parbreak() })
test/out/layout/par-justify-00.out view
@@ -134,15 +134,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [This text is justified, meaning that spaces are stretched so that the text+                 parbreak(), +                 text(body: [This text is justified, meaning that spaces are stretched so that the text forms a “block” with flush edges at both sides.]), -  parbreak(), -  text(body: [First line indents and hyphenation play nicely with justified text.]), -  parbreak() }+                 parbreak(), +                 text(body: [First line indents and hyphenation play nicely with justified text.]), +                 parbreak() })
test/out/layout/par-justify-01.out view
@@ -58,10 +58,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ A B C ]), -  linebreak(), -  text(body: [D]), -  parbreak() }+                 linebreak(), +                 text(body: [D]), +                 parbreak() })
test/out/layout/par-justify-02.out view
@@ -68,11 +68,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A B C ]), -  linebreak(justify: true), -  text(body: [+                 text(body: [A B C ]), +                 linebreak(justify: true), +                 text(body: [ D E F ]), -  linebreak(justify: true), -  parbreak() }+                 linebreak(justify: true), +                 parbreak() })
test/out/layout/par-justify-03.out view
@@ -55,8 +55,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/layout/par-justify-04.out view
@@ -73,10 +73,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ This text can be fitted in one line.]), -  parbreak() }+                 parbreak() })
test/out/layout/par-justify-cjk-00.out view
@@ -97,21 +97,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  rect(body: { text(body: [+                 parbreak(), +                 rect(body: { text(body: [ 中文维基百科使用汉字书写,汉字是汉族或华人的共同文字,是中国大陆、新加坡、马来西亚、台湾、香港、澳门的唯一官方文字或官方文字之一。25.9%,而美国和荷兰则分別占13.7%及8.2%。近年來,中国大陆地区的维基百科编辑者正在迅速增加;], -                    font: "Noto Serif CJK SC", -                    lang: "zh"), -               parbreak() }, -       fill: rgb(5%,5%,5%,100%), -       inset: 0.0pt, -       width: 80.0pt), -  parbreak() }+                                   font: "Noto Serif CJK SC", +                                   lang: "zh"), +                              parbreak() }, +                      fill: rgb(5%,5%,5%,100%), +                      inset: 0.0pt, +                      width: 80.0pt), +                 parbreak() })
test/out/layout/par-justify-cjk-01.out view
@@ -100,22 +100,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], lang: "jp"), -  rect(body: { text(body: [+                 rect(body: { text(body: [ ウィキペディア(英: Wikipedia)は、世界中のボランティアの共同作業によって執筆及び作成されるフリーの多言語インターネット百科事典である。主に寄付に依って活動している非営利団体「ウィキメディア財団」が所有・運営している。], -                    lang: "jp"), -               parbreak(), -               text(body: [専門家によるオンライン百科事典プロジェクトNupedia(ヌーペディア)を前身として、2001年1月、ラリー・サンガーとジミー・ウェールズ(英: Jimmy Donal “Jimbo” Wales)により英語でプロジェクトが開始された。], -                    lang: "jp"), -               parbreak() }, -       fill: rgb(5%,5%,5%,100%), -       inset: 0.0pt, -       width: 80.0pt), -  parbreak() }+                                   lang: "jp"), +                              parbreak(), +                              text(body: [専門家によるオンライン百科事典プロジェクトNupedia(ヌーペディア)を前身として、2001年1月、ラリー・サンガーとジミー・ウェールズ(英: Jimmy Donal “Jimbo” Wales)により英語でプロジェクトが開始された。], +                                   lang: "jp"), +                              parbreak() }, +                      fill: rgb(5%,5%,5%,100%), +                      inset: 0.0pt, +                      width: 80.0pt), +                 parbreak() })
test/out/layout/par-justify-cjk-02.out view
@@ -89,32 +89,32 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: "Noto Serif CJK SC", -       lang: "zh"), -  text(body: [+                      font: "Noto Serif CJK SC", +                      lang: "zh"), +                 text(body: [ ], -       font: "Noto Serif CJK SC", -       lang: "zh"), -  rect(body: { text(body: [+                      font: "Noto Serif CJK SC", +                      lang: "zh"), +                 rect(body: { text(body: [ “引号测试”,还,], -                    font: "Noto Serif CJK SC", -                    lang: "zh"), -               parbreak(), -               text(body: [《书名》《测试》下一行], -                    font: "Noto Serif CJK SC", -                    lang: "zh"), -               parbreak(), -               text(body: [《书名》《测试》。], -                    font: "Noto Serif CJK SC", -                    lang: "zh"), -               parbreak() }, -       fill: rgb(5%,5%,5%,100%), -       inset: 0.0pt, -       width: 80.0pt), -  parbreak() }+                                   font: "Noto Serif CJK SC", +                                   lang: "zh"), +                              parbreak(), +                              text(body: [《书名》《测试》下一行], +                                   font: "Noto Serif CJK SC", +                                   lang: "zh"), +                              parbreak(), +                              text(body: [《书名》《测试》。], +                                   font: "Noto Serif CJK SC", +                                   lang: "zh"), +                              parbreak() }, +                      fill: rgb(5%,5%,5%,100%), +                      inset: 0.0pt, +                      width: 80.0pt), +                 parbreak() })
test/out/layout/par-justify-cjk-03.out view
@@ -94,24 +94,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: "Noto Serif CJK SC", -       lang: "zh"), -  parbreak(), -  text(body: [孔雀最早见于《山海经》中的《海内经》:​“有孔雀。”东汉杨孚著《异物志》记载,岭南:“孔雀,其大如大雁而足高,毛皆有斑纹彩,捕而蓄之,拍手即舞。”], -       font: "Noto Serif CJK SC", -       lang: "zh"), -  parbreak(), -  text(body: [+                      font: "Noto Serif CJK SC", +                      lang: "zh"), +                 parbreak(), +                 text(body: [孔雀最早见于《山海经》中的《海内经》:​“有孔雀。”东汉杨孚著《异物志》记载,岭南:“孔雀,其大如大雁而足高,毛皆有斑纹彩,捕而蓄之,拍手即舞。”], +                      font: "Noto Serif CJK SC", +                      lang: "zh"), +                 parbreak(), +                 text(body: [ 孔雀最早见于《山海经》中的《海内经》:「有孔雀。」东汉杨孚著《异物志》记载,岭南:「孔雀,其大如大雁而足高,毛皆有斑纹彩,捕而蓄之,拍手即舞。」], -       font: "Noto Serif CJK TC", -       lang: "zh", -       region: "hk"), -  parbreak() }+                      font: "Noto Serif CJK TC", +                      lang: "zh", +                      region: "hk"), +                 parbreak() })
test/out/layout/par-knuth-00.out view
@@ -411,32 +411,32 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  parbreak(), -  parbreak(), -  grid(children: (rect(body: { text(body: [+                 parbreak(), +                 parbreak(), +                 parbreak(), +                 grid(children: (rect(body: { text(body: [ ], -                                    font: "New Computer Modern"), -                               text(body: [+                                                   font: "New Computer Modern"), +                                              text(body: [ ], -                                    font: "New Computer Modern"), -                               text(body: [+                                                   font: "New Computer Modern"), +                                              text(body: [ ], -                                    font: "New Computer Modern", -                                    hyphenate: false), -                               strong(body: text(body: [Simple without hyphens], -                                                 font: "New Computer Modern")), -                               text(body: [ ], -                                    font: "New Computer Modern", -                                    hyphenate: false), -                               linebreak(), -                               text(body: [+                                                   font: "New Computer Modern", +                                                   hyphenate: false), +                                              strong(body: text(body: [Simple without hyphens], +                                                                font: "New Computer Modern")), +                                              text(body: [ ], +                                                   font: "New Computer Modern", +                                                   hyphenate: false), +                                              linebreak(), +                                              text(body: [ In olden times when wishing still helped one, there lived a king whose daughters were all beautiful; and the youngest was so beautiful that the sun itself, which has seen so much, was astonished whenever it shone in her face.@@ -445,29 +445,29 @@ went out into the red and sat down by the side of the cool fountain; and when she was bored she took a golden ball, and threw it up on high and caught it; and this ball was her favorite plaything.], -                                    font: "New Computer Modern"), -                               parbreak(), -                               parbreak() }, -                       fill: rgb(5%,5%,5%,100%), -                       inset: 0.0pt, -                       width: 132.0pt), -                  rect(body: { text(body: [+                                                   font: "New Computer Modern"), +                                              parbreak(), +                                              parbreak() }, +                                      fill: rgb(5%,5%,5%,100%), +                                      inset: 0.0pt, +                                      width: 132.0pt), +                                 rect(body: { text(body: [ ], -                                    font: "New Computer Modern"), -                               text(body: [+                                                   font: "New Computer Modern"), +                                              text(body: [ ], -                                    font: "New Computer Modern"), -                               text(body: [+                                                   font: "New Computer Modern"), +                                              text(body: [ ], -                                    font: "New Computer Modern", -                                    hyphenate: true), -                               strong(body: text(body: [Simple with hyphens], -                                                 font: "New Computer Modern")), -                               text(body: [ ], -                                    font: "New Computer Modern", -                                    hyphenate: true), -                               linebreak(), -                               text(body: [+                                                   font: "New Computer Modern", +                                                   hyphenate: true), +                                              strong(body: text(body: [Simple with hyphens], +                                                                font: "New Computer Modern")), +                                              text(body: [ ], +                                                   font: "New Computer Modern", +                                                   hyphenate: true), +                                              linebreak(), +                                              text(body: [ In olden times when wishing still helped one, there lived a king whose daughters were all beautiful; and the youngest was so beautiful that the sun itself, which has seen so much, was astonished whenever it shone in her face.@@ -476,29 +476,29 @@ went out into the red and sat down by the side of the cool fountain; and when she was bored she took a golden ball, and threw it up on high and caught it; and this ball was her favorite plaything.], -                                    font: "New Computer Modern"), -                               parbreak(), -                               parbreak() }, -                       fill: rgb(5%,5%,5%,100%), -                       inset: 0.0pt, -                       width: 132.0pt), -                  rect(body: { text(body: [+                                                   font: "New Computer Modern"), +                                              parbreak(), +                                              parbreak() }, +                                      fill: rgb(5%,5%,5%,100%), +                                      inset: 0.0pt, +                                      width: 132.0pt), +                                 rect(body: { text(body: [ ], -                                    font: "New Computer Modern"), -                               text(body: [+                                                   font: "New Computer Modern"), +                                              text(body: [ ], -                                    font: "New Computer Modern"), -                               text(body: [+                                                   font: "New Computer Modern"), +                                              text(body: [ ], -                                    font: "New Computer Modern", -                                    hyphenate: true), -                               strong(body: text(body: [Optimized with hyphens], -                                                 font: "New Computer Modern")), -                               text(body: [ ], -                                    font: "New Computer Modern", -                                    hyphenate: true), -                               linebreak(), -                               text(body: [+                                                   font: "New Computer Modern", +                                                   hyphenate: true), +                                              strong(body: text(body: [Optimized with hyphens], +                                                                font: "New Computer Modern")), +                                              text(body: [ ], +                                                   font: "New Computer Modern", +                                                   hyphenate: true), +                                              linebreak(), +                                              text(body: [ In olden times when wishing still helped one, there lived a king whose daughters were all beautiful; and the youngest was so beautiful that the sun itself, which has seen so much, was astonished whenever it shone in her face.@@ -507,12 +507,12 @@ went out into the red and sat down by the side of the cool fountain; and when she was bored she took a golden ball, and threw it up on high and caught it; and this ball was her favorite plaything.], -                                    font: "New Computer Modern"), -                               parbreak(), -                               parbreak() }, -                       fill: rgb(5%,5%,5%,100%), -                       inset: 0.0pt, -                       width: 132.0pt)), -       columns: 3, -       gutter: 10.0pt), -  parbreak() }+                                                   font: "New Computer Modern"), +                                              parbreak(), +                                              parbreak() }, +                                      fill: rgb(5%,5%,5%,100%), +                                      inset: 0.0pt, +                                      width: 132.0pt)), +                      columns: 3, +                      gutter: 10.0pt), +                 parbreak() })
test/out/layout/par-simple-00.out view
@@ -467,22 +467,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [But, soft! what light through yonder window breaks? It is the east, and Juliet+                 parbreak(), +                 text(body: [But, soft! what light through yonder window breaks? It is the east, and Juliet is the sun. Arise, fair sun, and kill the envious moon, Who is already sick and pale with grief, That thou her maid art far more fair than she: Be not her maid, since she is envious; Her vestal livery is but sick and green And none but fools do wear it; cast it off. It is my lady, O, it is my love! O, that she knew she were! She speaks yet she says nothing: what of that? Her eye discourses; I will answer it.]), -  parbreak(), -  text(body: [I am too bold, ‘tis not to me she speaks: Two of the fairest stars in all the+                 parbreak(), +                 text(body: [I am too bold, ‘tis not to me she speaks: Two of the fairest stars in all the heaven, Having some business, do entreat her eyes To twinkle in their spheres till they return. What if her eyes were there, they in her head? The brightness of her cheek would shame those stars, As daylight doth a lamp; her eyes in heaven Would through the airy region stream so bright That birds would sing and think it were not night. See, how she leans her cheek upon her hand! O, that I were a glove upon that hand, That I might touch that cheek!]), -  parbreak() }+                 parbreak() })
test/out/layout/place-00.out view
@@ -187,55 +187,55 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  place(alignment: Axes(center, bottom), -        body: text(body: [© Typst])), -  parbreak(), -  heading(body: text(body: [Placement]), -          level: 1), -  place(alignment: right, -        body: image(path: "test/assets/files/tiger.jpg", -                    width: 1.8cm)), -  text(body: [+                 place(alignment: Axes(center, bottom), +                       body: text(body: [© Typst])), +                 parbreak(), +                 heading(body: text(body: [Placement]), +                         level: 1), +                 place(alignment: right, +                       body: image(path: "test/assets/files/tiger.jpg", +                                   width: 1.8cm)), +                 text(body: [ Hi there. This is ]), -  linebreak(), -  text(body: [a placed element. ]), -  linebreak(), -  text(body: [Unfortunately, ]), -  linebreak(), -  text(body: [the line breaks still had to be inserted manually.]), -  parbreak(), -  stack(children: (rect(fill: rgb(13%,61%,67%,100%), -                        height: 10.0pt, -                        width: 100%), -                   place(alignment: right, -                         body: text(body: [ABC]), -                         dy: 1.5pt), -                   rect(fill: rgb(18%,80%,25%,100%), -                        height: 10.0pt, -                        width: 80%), -                   rect(fill: rgb(100%,25%,21%,100%), -                        height: 10.0pt, -                        width: 100%), -                   10.0pt, -                   block(body: { text(body: [+                 linebreak(), +                 text(body: [a placed element. ]), +                 linebreak(), +                 text(body: [Unfortunately, ]), +                 linebreak(), +                 text(body: [the line breaks still had to be inserted manually.]), +                 parbreak(), +                 stack(children: (rect(fill: rgb(13%,61%,67%,100%), +                                       height: 10.0pt, +                                       width: 100%), +                                  place(alignment: right, +                                        body: text(body: [ABC]), +                                        dy: 1.5pt), +                                  rect(fill: rgb(18%,80%,25%,100%), +                                       height: 10.0pt, +                                       width: 80%), +                                  rect(fill: rgb(100%,25%,21%,100%), +                                       height: 10.0pt, +                                       width: 100%), +                                  10.0pt, +                                  block(body: { text(body: [ ]), -                                 place(alignment: center, -                                       body: text(body: [Hello]), -                                       dx: -7.0pt, -                                       dy: -5.0pt), -                                 text(body: [+                                                place(alignment: center, +                                                      body: text(body: [Hello]), +                                                      dx: -7.0pt, +                                                      dy: -5.0pt), +                                                text(body: [ ]), -                                 place(alignment: center, -                                       body: text(body: [Hello]), -                                       dx: 7.0pt, -                                       dy: 5.0pt), -                                 text(body: [+                                                place(alignment: center, +                                                      body: text(body: [Hello]), +                                                      dx: 7.0pt, +                                                      dy: 5.0pt), +                                                text(body: [ Hello ]), -                                 h(amount: 1.0fr), -                                 text(body: [ Hello]), -                                 parbreak() }))), -  parbreak() }+                                                h(amount: 1.0fr), +                                                text(body: [ Hello]), +                                                parbreak() }))), +                 parbreak() })
test/out/layout/place-01.out view
@@ -65,13 +65,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [First]), -  parbreak(), -  place(alignment: Axes(right, bottom), -        body: text(body: [Placed])), -  parbreak(), -  text(body: [Second]), -  parbreak() }+                 parbreak(), +                 text(body: [First]), +                 parbreak(), +                 place(alignment: Axes(right, bottom), +                       body: text(body: [Placed])), +                 parbreak(), +                 text(body: [Second]), +                 parbreak() })
test/out/layout/place-background-00.out view
@@ -101,31 +101,31 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       fill: rgb(100%,100%,100%,100%)), -  place(body: image(fit: "cover", -                    height: 20.0pt + 100%, -                    path: "/tiger.jpg", -                    width: 20.0pt + 100%), -        dx: -10.0pt, -        dy: -10.0pt), -  text(body: [+                      fill: rgb(100%,100%,100%,100%)), +                 place(body: image(fit: "cover", +                                   height: 20.0pt + 100%, +                                   path: "/tiger.jpg", +                                   width: 20.0pt + 100%), +                       dx: -10.0pt, +                       dy: -10.0pt), +                 text(body: [ ], -       fill: rgb(100%,100%,100%,100%)), -  align(alignment: Axes(right, bottom), -        body: { text(body: [+                      fill: rgb(100%,100%,100%,100%)), +                 align(alignment: Axes(right, bottom), +                       body: { text(body: [ ], -                     fill: rgb(100%,100%,100%,100%)), -                emph(body: text(body: [Welcome to], -                                fill: rgb(100%,100%,100%,100%))), -                text(body: [ ], -                     fill: rgb(100%,100%,100%,100%)), -                underline(body: strong(body: text(body: [Tigerland], -                                                  fill: rgb(100%,100%,100%,100%)))), -                parbreak() }), -  parbreak() }+                                    fill: rgb(100%,100%,100%,100%)), +                               emph(body: text(body: [Welcome to], +                                               fill: rgb(100%,100%,100%,100%))), +                               text(body: [ ], +                                    fill: rgb(100%,100%,100%,100%)), +                               underline(body: strong(body: text(body: [Tigerland], +                                                                 fill: rgb(100%,100%,100%,100%)))), +                               parbreak() }), +                 parbreak() })
test/out/layout/repeat-00.out view
@@ -106,67 +106,67 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ ]), -  text(body: [Introduction]), -  text(body: [ ]), -  box(body: repeat(body: text(body: [.])), -      width: 1.0fr), -  text(body: [ ]), -  text(body: [1]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 text(body: [Introduction]), +                 text(body: [ ]), +                 box(body: repeat(body: text(body: [.])), +                     width: 1.0fr), +                 text(body: [ ]), +                 text(body: [1]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ ]), -  text(body: [Approach]), -  text(body: [ ]), -  box(body: repeat(body: text(body: [.])), -      width: 1.0fr), -  text(body: [ ]), -  text(body: [1]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 text(body: [Approach]), +                 text(body: [ ]), +                 box(body: repeat(body: text(body: [.])), +                     width: 1.0fr), +                 text(body: [ ]), +                 text(body: [1]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ ]), -  text(body: [Evaluation]), -  text(body: [ ]), -  box(body: repeat(body: text(body: [.])), -      width: 1.0fr), -  text(body: [ ]), -  text(body: [3]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 text(body: [Evaluation]), +                 text(body: [ ]), +                 box(body: repeat(body: text(body: [.])), +                     width: 1.0fr), +                 text(body: [ ]), +                 text(body: [3]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ ]), -  text(body: [Discussion]), -  text(body: [ ]), -  box(body: repeat(body: text(body: [.])), -      width: 1.0fr), -  text(body: [ ]), -  text(body: [15]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 text(body: [Discussion]), +                 text(body: [ ]), +                 box(body: repeat(body: text(body: [.])), +                     width: 1.0fr), +                 text(body: [ ]), +                 text(body: [15]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ ]), -  text(body: [Related Work]), -  text(body: [ ]), -  box(body: repeat(body: text(body: [.])), -      width: 1.0fr), -  text(body: [ ]), -  text(body: [16]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 text(body: [Related Work]), +                 text(body: [ ]), +                 box(body: repeat(body: text(body: [.])), +                     width: 1.0fr), +                 text(body: [ ]), +                 text(body: [16]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ ]), -  text(body: [Conclusion]), -  text(body: [ ]), -  box(body: repeat(body: text(body: [.])), -      width: 1.0fr), -  text(body: [ ]), -  text(body: [253]), -  text(body: [ ]), -  linebreak(), -  parbreak() }+                 text(body: [Conclusion]), +                 text(body: [ ]), +                 box(body: repeat(body: text(body: [.])), +                     width: 1.0fr), +                 text(body: [ ]), +                 text(body: [253]), +                 text(body: [ ]), +                 linebreak(), +                 parbreak() })
test/out/layout/repeat-01.out view
@@ -63,14 +63,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ مقدمة ], -       lang: "ar"), -  box(body: repeat(body: text(body: [.], -                              lang: "ar")), -      width: 1.0fr), -  text(body: [ 15], -       lang: "ar"), -  parbreak() }+                      lang: "ar"), +                 box(body: repeat(body: text(body: [.], +                                             lang: "ar")), +                     width: 1.0fr), +                 text(body: [ 15], +                      lang: "ar"), +                 parbreak() })
test/out/layout/repeat-02.out view
@@ -56,10 +56,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A ]), -  box(body: repeat(body: {  }), -      width: 1.0fr), -  text(body: [ B]), -  parbreak() }+                 text(body: [A ]), +                 box(body: repeat(body: {  }), +                     width: 1.0fr), +                 text(body: [ B]), +                 parbreak() })
test/out/layout/repeat-03.out view
@@ -55,8 +55,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  repeat(body: rect(height: 1.0em, -                    width: 2.0em)), -  parbreak() }+                 repeat(body: rect(height: 1.0em, +                                   width: 2.0em)), +                 parbreak() })
test/out/layout/repeat-04.out view
@@ -116,26 +116,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A]), -  box(body: repeat(body: rect(height: 0.7em, -                              width: 6.0em)), -      width: 1.0fr), -  text(body: [B]), -  parbreak(), -  text(body: [+                 text(body: [A]), +                 box(body: repeat(body: rect(height: 0.7em, +                                             width: 6.0em)), +                     width: 1.0fr), +                 text(body: [B]), +                 parbreak(), +                 text(body: [ A]), -  box(body: repeat(body: rect(height: 0.7em, -                              width: 6.0em)), -      width: 1.0fr), -  text(body: [B]), -  parbreak(), -  text(body: [+                 box(body: repeat(body: rect(height: 0.7em, +                                             width: 6.0em)), +                     width: 1.0fr), +                 text(body: [B]), +                 parbreak(), +                 text(body: [ ريجين], -       dir: rtl), -  box(body: repeat(body: rect(height: 0.7em, -                              width: 4.0em)), -      width: 1.0fr), -  text(body: [سون], dir: rtl), -  parbreak() }+                      dir: rtl), +                 box(body: repeat(body: rect(height: 0.7em, +                                             width: 4.0em)), +                     width: 1.0fr), +                 text(body: [سون], dir: rtl), +                 parbreak() })
test/out/layout/spacing-00.out view
@@ -158,43 +158,43 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  box(body: { text(body: [A ]), -              linebreak(), -              text(body: [B]) }), -  text(body: [ ]), -  box(body: { text(body: [A ]), -              v(amount: 0.65em, -                weak: true), -              text(body: [ B]) }), -  parbreak(), -  text(body: [Inv]), -  h(amount: 0.0pt), -  text(body: [isible]), -  parbreak(), -  text(body: [Add ]), -  h(amount: 10.0pt), -  text(body: [ ]), -  h(amount: 10.0pt), -  text(body: [ up]), -  parbreak(), -  text(body: [+                 box(body: { text(body: [A ]), +                             linebreak(), +                             text(body: [B]) }), +                 text(body: [ ]), +                 box(body: { text(body: [A ]), +                             v(amount: 0.65em, +                               weak: true), +                             text(body: [ B]) }), +                 parbreak(), +                 text(body: [Inv]), +                 h(amount: 0.0pt), +                 text(body: [isible]), +                 parbreak(), +                 text(body: [Add ]), +                 h(amount: 10.0pt), +                 text(body: [ ]), +                 h(amount: 10.0pt), +                 text(body: [ up]), +                 parbreak(), +                 text(body: [ |]), -  h(amount: -4.0pt + 25%), -  text(body: [|]), -  h(amount: -4.0pt + 25%), -  text(body: [|]), -  h(amount: -4.0pt + 25%), -  text(body: [|]), -  h(amount: -4.0pt + 25%), -  text(body: [|]), -  parbreak(), -  text(body: [| ]), -  h(amount: 1.0fr), -  text(body: [ | ]), -  h(amount: 2.0fr), -  text(body: [ | ]), -  h(amount: 1.0fr), -  text(body: [ |]), -  parbreak() }+                 h(amount: -4.0pt + 25%), +                 text(body: [|]), +                 h(amount: -4.0pt + 25%), +                 text(body: [|]), +                 h(amount: -4.0pt + 25%), +                 text(body: [|]), +                 h(amount: -4.0pt + 25%), +                 text(body: [|]), +                 parbreak(), +                 text(body: [| ]), +                 h(amount: 1.0fr), +                 text(body: [ | ]), +                 h(amount: 2.0fr), +                 text(body: [ | ]), +                 h(amount: 1.0fr), +                 text(body: [ |]), +                 parbreak() })
test/out/layout/spacing-01.out view
@@ -82,18 +82,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ A ]), -  h(amount: 0.0pt), -  text(body: [ B ]), -  h(amount: 0.0pt), -  text(body: [ ]), -  linebreak(), -  text(body: [A B ]), -  linebreak(), -  text(body: [A ]), -  h(amount: -1.0fr), -  text(body: [ B]), -  parbreak() }+                 h(amount: 0.0pt), +                 text(body: [ B ]), +                 h(amount: 0.0pt), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [A B ]), +                 linebreak(), +                 text(body: [A ]), +                 h(amount: -1.0fr), +                 text(body: [ B]), +                 parbreak() })
test/out/layout/spacing-02.out view
@@ -70,14 +70,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ A ], dir: rtl), -  h(amount: 10.0pt), -  text(body: [ B ], dir: rtl), -  linebreak(), -  text(body: [A ], dir: rtl), -  h(amount: 1.0fr), -  text(body: [ B], dir: rtl), -  parbreak() }+                 h(amount: 10.0pt), +                 text(body: [ B ], dir: rtl), +                 linebreak(), +                 text(body: [A ], dir: rtl), +                 h(amount: 1.0fr), +                 text(body: [ B], dir: rtl), +                 parbreak() })
test/out/layout/stack-1-00.out view
@@ -135,44 +135,44 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  parbreak(), -  parbreak(), -  text(body: [+                 parbreak(), +                 parbreak(), +                 parbreak(), +                 text(body: [ ]), -  stack(children: (align(alignment: right, -                         body: rect(fill: rgb(10%,10%,10%,100%), -                                    height: 10.0pt, -                                    width: 30.0pt)), -                   align(alignment: right, -                         body: rect(fill: rgb(20%,20%,20%,100%), -                                    height: 10.0pt, -                                    width: 20.0pt)), -                   align(alignment: right, -                         body: rect(fill: rgb(30%,30%,30%,100%), -                                    height: 10.0pt, -                                    width: 40.0pt)), -                   align(alignment: right, -                         body: rect(fill: rgb(40%,40%,40%,100%), -                                    height: 10.0pt, -                                    width: 15.0pt)), -                   align(alignment: right, -                         body: rect(fill: rgb(50%,50%,50%,100%), -                                    height: 10.0pt, -                                    width: 30.0pt)), -                   align(alignment: right, -                         body: rect(fill: rgb(60%,60%,60%,100%), -                                    height: 10.0pt, -                                    width: 50%)), -                   align(alignment: right, -                         body: rect(fill: rgb(70%,70%,70%,100%), -                                    height: 10.0pt, -                                    width: 20.0pt)), -                   align(alignment: right, -                         body: rect(fill: rgb(80%,80%,80%,100%), -                                    height: 10.0pt, -                                    width: 100%))), -        dir: btt), -  parbreak() }+                 stack(children: (align(alignment: right, +                                        body: rect(fill: rgb(10%,10%,10%,100%), +                                                   height: 10.0pt, +                                                   width: 30.0pt)), +                                  align(alignment: right, +                                        body: rect(fill: rgb(20%,20%,20%,100%), +                                                   height: 10.0pt, +                                                   width: 20.0pt)), +                                  align(alignment: right, +                                        body: rect(fill: rgb(30%,30%,30%,100%), +                                                   height: 10.0pt, +                                                   width: 40.0pt)), +                                  align(alignment: right, +                                        body: rect(fill: rgb(40%,40%,40%,100%), +                                                   height: 10.0pt, +                                                   width: 15.0pt)), +                                  align(alignment: right, +                                        body: rect(fill: rgb(50%,50%,50%,100%), +                                                   height: 10.0pt, +                                                   width: 30.0pt)), +                                  align(alignment: right, +                                        body: rect(fill: rgb(60%,60%,60%,100%), +                                                   height: 10.0pt, +                                                   width: 50%)), +                                  align(alignment: right, +                                        body: rect(fill: rgb(70%,70%,70%,100%), +                                                   height: 10.0pt, +                                                   width: 20.0pt)), +                                  align(alignment: right, +                                        body: rect(fill: rgb(80%,80%,80%,100%), +                                                   height: 10.0pt, +                                                   width: 100%))), +                       dir: btt), +                 parbreak() })
test/out/layout/stack-1-01.out view
@@ -100,37 +100,37 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ ]), -  stack(children: (stack(children: (square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt), -                                    square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt), -                                    square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt)), -                         dir: rtl, -                         spacing: 5.0pt), -                   stack(children: (square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt), -                                    20%, -                                    square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt), -                                    20%, -                                    square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt)), -                         dir: ltr), -                   stack(children: (square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt), -                                    square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt), -                                    7.0pt, -                                    3.0pt, -                                    square(fill: rgb(13%,61%,67%,100%), -                                           size: 10.0pt)), -                         dir: ltr, -                         spacing: 5.0pt)), -        spacing: 5.0pt), -  parbreak() }+                 stack(children: (stack(children: (square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt), +                                                   square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt), +                                                   square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt)), +                                        dir: rtl, +                                        spacing: 5.0pt), +                                  stack(children: (square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt), +                                                   20%, +                                                   square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt), +                                                   20%, +                                                   square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt)), +                                        dir: ltr), +                                  stack(children: (square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt), +                                                   square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt), +                                                   7.0pt, +                                                   3.0pt, +                                                   square(fill: rgb(13%,61%,67%,100%), +                                                          size: 10.0pt)), +                                        dir: ltr, +                                        spacing: 5.0pt)), +                       spacing: 5.0pt), +                 parbreak() })
test/out/layout/stack-1-02.out view
@@ -77,14 +77,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  box(body: stack(children: (rect(fill: rgb(18%,80%,25%,100%), -                                  height: 20.0pt, -                                  width: 40.0pt), -                             rect(fill: rgb(100%,25%,21%,100%), -                                  height: 13.0pt, -                                  width: 30.0pt)))), -  parbreak() }+                 box(body: stack(children: (rect(fill: rgb(18%,80%,25%,100%), +                                                 height: 20.0pt, +                                                 width: 40.0pt), +                                            rect(fill: rgb(100%,25%,21%,100%), +                                                 height: 13.0pt, +                                                 width: 30.0pt)))), +                 parbreak() })
test/out/layout/stack-1-03.out view
@@ -99,30 +99,32 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], size: 8.0pt), -  stack(children: (1.0fr, -                   text(body: [A], size: 8.0pt), -                   1.0fr, -                   text(body: [B], size: 8.0pt), -                   text(body: [C], -                        size: 8.0pt)), -        dir: rtl), -  text(body: [+                 stack(children: (1.0fr, +                                  text(body: [A], +                                       size: 8.0pt), +                                  1.0fr, +                                  text(body: [B], +                                       size: 8.0pt), +                                  text(body: [C], +                                       size: 8.0pt)), +                       dir: rtl), +                 text(body: [ ], size: 8.0pt), -  stack(children: (align(alignment: center, -                         body: text(body: [A], -                                    size: 8.0pt)), -                   align(alignment: left, -                         body: text(body: [B], -                                    size: 8.0pt)), -                   text(body: [C], -                        size: 8.0pt)), -        dir: rtl), -  parbreak() }+                 stack(children: (align(alignment: center, +                                        body: text(body: [A], +                                                   size: 8.0pt)), +                                  align(alignment: left, +                                        body: text(body: [B], +                                                   size: 8.0pt)), +                                  text(body: [C], +                                       size: 8.0pt)), +                       dir: rtl), +                 parbreak() })
test/out/layout/stack-2-00.out view
@@ -110,33 +110,33 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  stack(children: (text(body: [A]), -                   text(body: [B]), -                   text(body: [C]), -                   text(body: [D]), -                   text(body: [E]), -                   text(body: [F]), -                   text(body: [G]), -                   text(body: [H]), -                   text(body: [I])), -        dir: ltr, -        spacing: 1.0fr), -  parbreak(), -  text(body: [Hello+                 stack(children: (text(body: [A]), +                                  text(body: [B]), +                                  text(body: [C]), +                                  text(body: [D]), +                                  text(body: [E]), +                                  text(body: [F]), +                                  text(body: [G]), +                                  text(body: [H]), +                                  text(body: [I])), +                       dir: ltr, +                       spacing: 1.0fr), +                 parbreak(), +                 text(body: [Hello ]), -  v(amount: 2.0fr), -  text(body: [+                 v(amount: 2.0fr), +                 text(body: [ from ]), -  h(amount: 1.0fr), -  text(body: [ the ]), -  h(amount: 1.0fr), -  text(body: [ wonderful+                 h(amount: 1.0fr), +                 text(body: [ the ]), +                 h(amount: 1.0fr), +                 text(body: [ wonderful ]), -  v(amount: 1.0fr), -  text(body: [+                 v(amount: 1.0fr), +                 text(body: [ World! 🌍]), -  parbreak() }+                 parbreak() })
test/out/layout/stack-2-01.out view
@@ -82,23 +82,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       color: rgb(100%,100%,100%,100%)), -  rect(body: { text(body: [+                      color: rgb(100%,100%,100%,100%)), +                 rect(body: { text(body: [ ], -                    color: rgb(100%,100%,100%,100%)), -               v(amount: 1.0fr), -               text(body: [+                                   color: rgb(100%,100%,100%,100%)), +                              v(amount: 1.0fr), +                              text(body: [ ], -                    color: rgb(100%,100%,100%,100%)), -               h(amount: 1.0fr), -               text(body: [ Hi you!], -                    color: rgb(100%,100%,100%,100%)), -               parbreak() }, -       fill: rgb(100%,25%,21%,100%)), -  parbreak() }+                                   color: rgb(100%,100%,100%,100%)), +                              h(amount: 1.0fr), +                              text(body: [ Hi you!], +                                   color: rgb(100%,100%,100%,100%)), +                              parbreak() }, +                      fill: rgb(100%,25%,21%,100%)), +                 parbreak() })
test/out/layout/table-00.out view
@@ -112,30 +112,30 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  table(children: (text(body: [A]), -                   text(body: [B]), -                   text(body: [C]), -                   {  }, -                   {  }, -                   { text(body: [D ]), -                     linebreak(), -                     text(body: [E ]), -                     linebreak(), -                     text(body: [F ]), -                     linebreak(), -                     linebreak(), -                     linebreak(), -                     text(body: [G]) }, -                   text(body: [H])), -        columns: (1.0fr, -                  1.0fr, -                  1.0fr), -        fill: , -        stroke: (thickness: 2.0pt,-                 color: rgb(1%,1%,1%,100%))), -  parbreak() }+                 parbreak(), +                 table(children: (text(body: [A]), +                                  text(body: [B]), +                                  text(body: [C]), +                                  {  }, +                                  {  }, +                                  { text(body: [D ]), +                                    linebreak(), +                                    text(body: [E ]), +                                    linebreak(), +                                    text(body: [F ]), +                                    linebreak(), +                                    linebreak(), +                                    linebreak(), +                                    text(body: [G]) }, +                                  text(body: [H])), +                       columns: (1.0fr, +                                 1.0fr, +                                 1.0fr), +                       fill: , +                       stroke: (thickness: 2.0pt,+                                color: rgb(1%,1%,1%,100%))), +                 parbreak() })
test/out/layout/table-01.out view
@@ -54,12 +54,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  table(children: (text(body: [A]), -                   text(body: [B]), -                   text(body: [C])), -        columns: 3, -        fill: rgb(18%,80%,25%,100%), -        stroke: none), -  parbreak() }+                 table(children: (text(body: [A]), +                                  text(body: [B]), +                                  text(body: [C])), +                       columns: 3, +                       fill: rgb(18%,80%,25%,100%), +                       stroke: none), +                 parbreak() })
test/out/layout/table-02.out view
@@ -92,25 +92,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  table(align: (left, -                center, -                right), -        children: (text(body: [A]), -                   text(body: [B]), -                   text(body: [C])), -        columns: (1.0fr, -                  1.0fr, -                  1.0fr)), -  parbreak(), -  text(body: [+                 table(align: (left, +                               center, +                               right), +                       children: (text(body: [A]), +                                  text(body: [B]), +                                  text(body: [C])), +                       columns: (1.0fr, +                                 1.0fr, +                                 1.0fr)), +                 parbreak(), +                 text(body: [ ]), -  table(align: (), -        children: (text(body: [A]), -                   text(body: [B]), -                   text(body: [C])), -        columns: (1.0fr, -                  1.0fr, -                  1.0fr)), -  parbreak() }+                 table(align: (), +                       children: (text(body: [A]), +                                  text(body: [B]), +                                  text(body: [C])), +                       columns: (1.0fr, +                                 1.0fr, +                                 1.0fr)), +                 parbreak() })
test/out/layout/table-03.out view
@@ -47,7 +47,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  table(children: ()), -  parbreak() }+                 table(children: ()), +                 parbreak() })
test/out/layout/terms-00.out view
@@ -59,10 +59,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  terms(children: ((text(body: [One]), -                    text(body: [First])), -                   (text(body: [Two]), -                    text(body: [Second])))), -  parbreak() }+                 terms(children: ((text(body: [One]), +                                   text(body: [First])), +                                  (text(body: [Two]), +                                   text(body: [Second])))), +                 parbreak() })
test/out/layout/terms-01.out view
@@ -75,26 +75,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  terms(children: ((text(body: [Lorem]), -                    { text(body: [Latin stuff.]), -                      parbreak() }))), -  text(body: [+                 terms(children: ((text(body: [Lorem]), +                                   { text(body: [Latin stuff.]), +                                     parbreak() }))), +                 text(body: [ ]), -  terms(children: ((text(body: [ipsum]), -                    { text(body: [Latin stuff.]), -                      parbreak() }))), -  text(body: [+                 terms(children: ((text(body: [ipsum]), +                                   { text(body: [Latin stuff.]), +                                     parbreak() }))), +                 text(body: [ ]), -  terms(children: ((text(body: [dolor]), -                    { text(body: [Latin stuff.]), -                      parbreak() }))), -  text(body: [+                 terms(children: ((text(body: [dolor]), +                                   { text(body: [Latin stuff.]), +                                     parbreak() }))), +                 text(body: [ ]), -  terms(children: ((text(body: [sit]), -                    { text(body: [Latin stuff.]), -                      parbreak() }))), -  parbreak() }+                 terms(children: ((text(body: [sit]), +                                   { text(body: [Latin stuff.]), +                                     parbreak() }))), +                 parbreak() })
test/out/layout/terms-02.out view
@@ -78,17 +78,17 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  terms(children: ((text(body: [Fruit], -                         size: 8.0pt), -                    text(body: [A tasty, edible thing.], -                         size: 8.0pt)), -                   (text(body: [Veggie], -                         size: 8.0pt), -                    { text(body: [+                 parbreak(), +                 terms(children: ((text(body: [Fruit], +                                        size: 8.0pt), +                                   text(body: [A tasty, edible thing.], +                                        size: 8.0pt)), +                                  (text(body: [Veggie], +                                        size: 8.0pt), +                                   { text(body: [ An important energy source for vegetarians.], -                           size: 8.0pt), -                      parbreak() }))) }+                                          size: 8.0pt), +                                     parbreak() }))) })
test/out/layout/terms-03.out view
@@ -77,22 +77,22 @@     ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], size: 8.0pt), -  terms(children: ((text(body: [First list], -                         size: 8.0pt), -                    { text(body: [Lorem ipsum dolor sit amet, consectetur], -                           size: 8.0pt), -                      text(body: [+                 terms(children: ((text(body: [First list], +                                        size: 8.0pt), +                                   { text(body: [Lorem ipsum dolor sit amet, consectetur], +                                          size: 8.0pt), +                                     text(body: [ ], -                           size: 8.0pt) }))), -  text(body: [+                                          size: 8.0pt) }))), +                 text(body: [ ], size: 8.0pt), -  terms(children: ((text(body: [Second list], -                         size: 8.0pt), -                    { text(body: [Lorem ipsum dolor sit amet,], -                           size: 8.0pt), -                      parbreak() })), -        hanging-indent: 30.0pt) }+                 terms(children: ((text(body: [Second list], +                                        size: 8.0pt), +                                   { text(body: [Lorem ipsum dolor sit amet,], +                                          size: 8.0pt), +                                     parbreak() })), +                       hanging-indent: 30.0pt) })
test/out/layout/terms-04.out view
@@ -90,15 +90,15 @@     [ Text "CCC" ] [ Text "Three" , Space , Text "letters" , ParBreak ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  table(children: (emph(body: text(body: [A])), -                   text(body: [One letter]), -                   emph(body: text(body: [BB])), -                   text(body: [Two letters]), -                   emph(body: text(body: [CCC])), -                   { text(body: [Three letters]), -                     parbreak() }), -        columns: 2, -        inset: 3.0pt) }+                 parbreak(), +                 table(children: (emph(body: text(body: [A])), +                                  text(body: [One letter]), +                                  emph(body: text(body: [BB])), +                                  text(body: [Two letters]), +                                  emph(body: text(body: [CCC])), +                                  { text(body: [Three letters]), +                                    parbreak() }), +                       columns: 2, +                       inset: 3.0pt) })
test/out/layout/terms-05.out view
@@ -52,10 +52,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  terms(children: ((text(body: [Term]), -                    {  }))), -  text(body: [Not in list+                 terms(children: ((text(body: [Term]), +                                   {  }))), +                 text(body: [Not in list /Nope]), -  parbreak() }+                 parbreak() })
test/out/layout/transform-00.out view
@@ -173,42 +173,42 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  parbreak(), -  text(body: [+                 parbreak(), +                 parbreak(), +                 text(body: [ Neither ], -       font: "New Computer Modern", -       size: 11.0pt), -  text(body: [T]), -  h(amount: -1.54pt), -  box(body: move(body: text(body: [E]), -                 dy: 2.42pt)), -  h(amount: -1.3199999999999998pt), -  text(body: [X]), -  text(body: [, ], -       font: "New Computer Modern", -       size: 11.0pt), -  linebreak(), -  text(body: [nor ], -       font: "New Computer Modern", -       size: 11.0pt), -  text(body: [X]), -  h(amount: -1.54pt), -  box(body: scale(body: move(body: text(body: [E]), -                             dy: 2.8600000000000003pt), -                  x: -100%)), -  h(amount: -1.54pt), -  text(body: [T]), -  h(amount: -1.54pt), -  box(body: move(body: text(body: [E]), -                 dy: 2.8600000000000003pt)), -  h(amount: -1.3199999999999998pt), -  text(body: [X]), -  text(body: [!], -       font: "New Computer Modern", -       size: 11.0pt), -  parbreak() }+                      font: "New Computer Modern", +                      size: 11.0pt), +                 text(body: [T]), +                 h(amount: -1.54pt), +                 box(body: move(body: text(body: [E]), +                                dy: 2.42pt)), +                 h(amount: -1.3199999999999998pt), +                 text(body: [X]), +                 text(body: [, ], +                      font: "New Computer Modern", +                      size: 11.0pt), +                 linebreak(), +                 text(body: [nor ], +                      font: "New Computer Modern", +                      size: 11.0pt), +                 text(body: [X]), +                 h(amount: -1.54pt), +                 box(body: scale(body: move(body: text(body: [E]), +                                            dy: 2.8600000000000003pt), +                                 x: -100%)), +                 h(amount: -1.54pt), +                 text(body: [T]), +                 h(amount: -1.54pt), +                 box(body: move(body: text(body: [E]), +                                dy: 2.8600000000000003pt)), +                 h(amount: -1.3199999999999998pt), +                 text(body: [X]), +                 text(body: [!], +                      font: "New Computer Modern", +                      size: 11.0pt), +                 parbreak() })
test/out/layout/transform-01.out view
@@ -72,12 +72,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  align(alignment: Axes(center, horizon), -        body: rotate(angle: 20.0deg, -                     body: scale(body: image(path: "test/assets/files/tiger.jpg"), -                                 factor: 70%))), -  parbreak() }+                 align(alignment: Axes(center, horizon), +                       body: rotate(angle: 20.0deg, +                                    body: scale(body: image(path: "test/assets/files/tiger.jpg"), +                                                factor: 70%))), +                 parbreak() })
test/out/layout/transform-02.out view
@@ -59,10 +59,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  rotate(angle: 10.0deg, -         body: image(path: "test/assets/files/tiger.jpg", -                     width: 50%), -         origin: Axes(left, top)), -  parbreak() }+                 rotate(angle: 10.0deg, +                        body: image(path: "test/assets/files/tiger.jpg", +                                    width: 50%), +                        origin: Axes(left, top)), +                 parbreak() })
test/out/layout/transform-03.out view
@@ -109,31 +109,31 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), -                             height: 10.0pt, -                             width: 100.0pt), -                  origin: Axes(left, top), -                  x: 50%, -                  y: 200%)), -  text(body: [+                 box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), +                                            height: 10.0pt, +                                            width: 100.0pt), +                                 origin: Axes(left, top), +                                 x: 50%, +                                 y: 200%)), +                 text(body: [ ]), -  box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), -                             height: 10.0pt, -                             width: 100.0pt), -                  origin: center, -                  x: 50%)), -  text(body: [+                 box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), +                                            height: 10.0pt, +                                            width: 100.0pt), +                                 origin: center, +                                 x: 50%)), +                 text(body: [ ]), -  box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), -                             height: 10.0pt, -                             width: 100.0pt), -                  origin: Axes(right, bottom), -                  x: 50%, -                  y: 200%)), -  parbreak() }+                 box(body: scale(body: rect(fill: rgb(100%,25%,21%,100%), +                                            height: 10.0pt, +                                            width: 100.0pt), +                                 origin: Axes(right, bottom), +                                 x: 50%, +                                 y: 200%)), +                 parbreak() })
test/out/math/accent-00.out view
@@ -111,45 +111,45 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { math.accent(accent: `, -                                    base: text(body: [a])), -                        text(body: [,]), -                        math.accent(accent: ´, -                                    base: text(body: [b])), -                        text(body: [,]), -                        math.accent(accent: ^, -                                    base: text(body: [f])), -                        text(body: [,]), -                        math.accent(accent: ∼, -                                    base: text(body: [§])), -                        text(body: [,]), -                        math.accent(accent: ¯, -                                    base: text(body: [ä])), -                        text(body: [,]), -                        math.accent(accent: ¨, -                                    base: text(body: [a])), -                        text(body: [,]), -                        text(body: [ä]), -                        linebreak(), -                        math.accent(accent: ˘, -                                    base: text(body: [&])), -                        text(body: [,]), -                        math.accent(accent: ⋅, -                                    base: text(body: [!])), -                        text(body: [,]), -                        math.accent(accent: ○, -                                    base: text(body: [a])), -                        text(body: [,]), -                        math.accent(accent: ˇ, -                                    base: text(body: [@])), -                        text(body: [,]), -                        math.accent(accent: →, -                                    base: text(body: [Z])), -                        text(body: [,]), -                        math.accent(accent: ←, -                                    base: text(body: [Z])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.accent(accent: `, +                                                   base: text(body: [a])), +                                       text(body: [,]), +                                       math.accent(accent: ´, +                                                   base: text(body: [b])), +                                       text(body: [,]), +                                       math.accent(accent: ^, +                                                   base: text(body: [f])), +                                       text(body: [,]), +                                       math.accent(accent: ∼, +                                                   base: text(body: [§])), +                                       text(body: [,]), +                                       math.accent(accent: ¯, +                                                   base: text(body: [ä])), +                                       text(body: [,]), +                                       math.accent(accent: ¨, +                                                   base: text(body: [a])), +                                       text(body: [,]), +                                       text(body: [ä]), +                                       linebreak(), +                                       math.accent(accent: ˘, +                                                   base: text(body: [&])), +                                       text(body: [,]), +                                       math.accent(accent: ⋅, +                                                   base: text(body: [!])), +                                       text(body: [,]), +                                       math.accent(accent: ○, +                                                   base: text(body: [a])), +                                       text(body: [,]), +                                       math.accent(accent: ˇ, +                                                   base: text(body: [@])), +                                       text(body: [,]), +                                       math.accent(accent: →, +                                                   base: text(body: [Z])), +                                       text(body: [,]), +                                       math.accent(accent: ←, +                                                   base: text(body: [Z])) }, +                               numbering: none), +                 parbreak() })
test/out/math/accent-01.out view
@@ -90,36 +90,36 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [p]), -                        linebreak(), -                        math.accent(accent: ⋅, -                                    base: text(body: [x])), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [v]), -                        linebreak(), -                        math.accent(accent: ¨, -                                    base: text(body: [x])), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [a]), -                        linebreak(), -                        math.accent(accent: ⃛, -                                    base: text(body: [x])), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [j]), -                        linebreak(), -                        math.accent(accent: ⃜, -                                    base: text(body: [x])), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [s]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [p]), +                                       linebreak(), +                                       math.accent(accent: ⋅, +                                                   base: text(body: [x])), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [v]), +                                       linebreak(), +                                       math.accent(accent: ¨, +                                                   base: text(body: [x])), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [a]), +                                       linebreak(), +                                       math.accent(accent: ⃛, +                                                   base: text(body: [x])), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [j]), +                                       linebreak(), +                                       math.accent(accent: ⃜, +                                                   base: text(body: [x])), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [s]) }, +                               numbering: none), +                 parbreak() })
test/out/math/accent-02.out view
@@ -80,16 +80,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { math.accent(accent: text(body: [.]), -                                    base: text(body: [ö])), -                        text(body: [,]), -                        math.accent(accent: text(body: [←]), -                                    base: text(body: [v])), -                        text(body: [,]), -                        math.accent(accent: text(body: [̃]), -                                    base: text(body: [ℤ])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.accent(accent: text(body: [.]), +                                                   base: text(body: [ö])), +                                       text(body: [,]), +                                       math.accent(accent: text(body: [←]), +                                                   base: text(body: [v])), +                                       text(body: [,]), +                                       math.accent(accent: text(body: [̃]), +                                                   base: text(body: [ℤ])) }, +                               numbering: none), +                 parbreak() })
test/out/math/accent-03.out view
@@ -68,15 +68,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { math.sqrt(radicand: math.accent(accent: ∼, -                                                        base: text(body: [T]))), -                        text(body: [+]), -                        math.frac(denom: math.accent(accent: ^, -                                                     base: text(body: [g])), -                                  num: math.accent(accent: ^, -                                                   base: text(body: [f]))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.sqrt(radicand: math.accent(accent: ∼, +                                                                       base: text(body: [T]))), +                                       text(body: [+]), +                                       math.frac(denom: math.accent(accent: ^, +                                                                    base: text(body: [g])), +                                                 num: math.accent(accent: ^, +                                                                  base: text(body: [f]))) }, +                               numbering: none), +                 parbreak() })
test/out/math/accent-04.out view
@@ -65,15 +65,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { math.accent(accent: →, -                                    base: { text(body: [ABC ]), -                                            text(body: [+]), -                                            text(body: [d]) }), -                        text(body: [,]), -                        math.accent(accent: ∼, -                                    base: text(body: [∑])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.accent(accent: →, +                                                   base: { text(body: [ABC ]), +                                                           text(body: [+]), +                                                           text(body: [d]) }), +                                       text(body: [,]), +                                       math.accent(accent: ∼, +                                                   base: text(body: [∑])) }, +                               numbering: none), +                 parbreak() })
test/out/math/accent-05.out view
@@ -77,22 +77,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { math.attach(b: none, -                                    base: text(body: [A]), -                                    t: text(body: [x])), -                        text(body: [≠]), -                        math.attach(b: none, -                                    base: math.accent(accent: ^, -                                                      base: text(body: [A])), -                                    t: text(body: [x])), -                        text(body: [≠]), -                        math.attach(b: none, -                                    base: math.accent(accent: ^, -                                                      base: math.accent(accent: ^, -                                                                        base: text(body: [A]))), -                                    t: text(body: [x])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.attach(b: none, +                                                   base: text(body: [A]), +                                                   t: text(body: [x])), +                                       text(body: [≠]), +                                       math.attach(b: none, +                                                   base: math.accent(accent: ^, +                                                                     base: text(body: [A])), +                                                   t: text(body: [x])), +                                       text(body: [≠]), +                                       math.attach(b: none, +                                                   base: math.accent(accent: ^, +                                                                     base: math.accent(accent: ^, +                                                                                       base: text(body: [A]))), +                                                   t: text(body: [x])) }, +                               numbering: none), +                 parbreak() })
test/out/math/accent-06.out view
@@ -90,20 +90,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.accent(accent: ∼, -                                    base: text(body: [∫])), -                        text(body: [,]), -                        math.attach(b: text(body: [a]), -                                    base: math.accent(accent: ∼, -                                                      base: text(body: [∫])), -                                    t: text(body: [b])), -                        text(body: [,]), -                        math.accent(accent: ∼, -                                    base: math.attach(b: text(body: [a]), -                                                      base: text(body: [∫]), -                                                      t: text(body: [b]))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.accent(accent: ∼, +                                                   base: text(body: [∫])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [a]), +                                                   base: math.accent(accent: ∼, +                                                                     base: text(body: [∫])), +                                                   t: text(body: [b])), +                                       text(body: [,]), +                                       math.accent(accent: ∼, +                                                   base: math.attach(b: text(body: [a]), +                                                                     base: text(body: [∫]), +                                                                     t: text(body: [b]))) }, +                               numbering: none), +                 parbreak() })
test/out/math/alignment-00.out view
@@ -81,38 +81,38 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [ a ]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [c]), -                        linebreak(), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [c]), -                        text(body: [+]), -                        text(body: [1]), -                        math.alignpoint(), -                        text(body: [ By definition ]), -                        linebreak(), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [d]), -                        text(body: [+]), -                        text(body: [100]), -                        text(body: [+]), -                        text(body: [1000]), -                        linebreak(), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [x]), -                        math.alignpoint(), -                        math.alignpoint(), -                        text(body: [ Even longer ]), -                        linebreak() }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [ a ]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [c]), +                                       linebreak(), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [c]), +                                       text(body: [+]), +                                       text(body: [1]), +                                       math.alignpoint(), +                                       text(body: [ By definition ]), +                                       linebreak(), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [d]), +                                       text(body: [+]), +                                       text(body: [100]), +                                       text(body: [+]), +                                       text(body: [1000]), +                                       linebreak(), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [x]), +                                       math.alignpoint(), +                                       math.alignpoint(), +                                       text(body: [ Even longer ]), +                                       linebreak() }, +                               numbering: none), +                 parbreak() })
test/out/math/alignment-01.out view
@@ -53,15 +53,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.alignpoint(), -                        text(body: [ right ]), -                        linebreak(), -                        text(body: [a very long line ]), -                        linebreak(), -                        text(body: [left ]), -                        linebreak() }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.alignpoint(), +                                       text(body: [ right ]), +                                       linebreak(), +                                       text(body: [a very long line ]), +                                       linebreak(), +                                       text(body: [left ]), +                                       linebreak() }, +                               numbering: none), +                 parbreak() })
test/out/math/alignment-02.out view
@@ -52,14 +52,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [ right ]), -                        linebreak(), -                        text(body: [a very long line ]), -                        linebreak(), -                        text(body: [left ]), -                        linebreak() }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [ right ]), +                                       linebreak(), +                                       text(body: [a very long line ]), +                                       linebreak(), +                                       text(body: [left ]), +                                       linebreak() }, +                               numbering: none), +                 parbreak() })
test/out/math/alignment-03.out view
@@ -69,28 +69,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [a]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [b]), -                        math.alignpoint(), -                        text(body: [ ]), -                        text(body: [c]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [d]), -                        linebreak(), -                        text(body: [e]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [f]), -                        math.alignpoint(), -                        text(body: [g]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [h]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [a]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [b]), +                                       math.alignpoint(), +                                       text(body: [ ]), +                                       text(body: [c]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [d]), +                                       linebreak(), +                                       text(body: [e]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [f]), +                                       math.alignpoint(), +                                       text(body: [g]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [h]) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-00.out view
@@ -77,23 +77,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { math.attach(b: text(body: [x]), -                                    base: text(body: [f]), -                                    t: none), -                        text(body: [+]), -                        math.attach(b: none, -                                    base: text(body: [t]), -                                    t: text(body: [b])), -                        text(body: [+]), -                        math.attach(b: text(body: [1]), -                                    base: text(body: [V]), -                                    t: text(body: [2])), -                        text(body: [+]), -                        math.attach(b: text(body: [β]), -                                    base: text(body: [A]), -                                    t: text(body: [α])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.attach(b: text(body: [x]), +                                                   base: text(body: [f]), +                                                   t: none), +                                       text(body: [+]), +                                       math.attach(b: none, +                                                   base: text(body: [t]), +                                                   t: text(body: [b])), +                                       text(body: [+]), +                                       math.attach(b: text(body: [1]), +                                                   base: text(body: [V]), +                                                   t: text(body: [2])), +                                       text(body: [+]), +                                       math.attach(b: text(body: [β]), +                                                   base: text(body: [A]), +                                                   t: text(body: [α])) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-01.out view
@@ -115,29 +115,29 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(base: math.upright(body: text(body: [O])), -                                    bl: text(body: [8]), -                                    br: text(body: [2]), -                                    tl: text(body: [16]), -                                    tr: { text(body: [2]), -                                          text(body: [−]) }), -                        text(body: [,]), -                        math.attach(base: text(body: [Pb]), -                                    bl: text(body: [82]), -                                    tl: text(body: [207])), -                        text(body: [+]), -                        math.attach(base: math.upright(body: text(body: [e])), -                                    bl: { text(body: [−]), -                                          text(body: [1]) }, -                                    tl: text(body: [0])), -                        text(body: [+]), -                        math.attach(b: text(body: [e]), -                                    base: math.accent(accent: ¯, -                                                      base: text(body: [v])), -                                    t: none), -                        linebreak() }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(base: math.upright(body: text(body: [O])), +                                                   bl: text(body: [8]), +                                                   br: text(body: [2]), +                                                   tl: text(body: [16]), +                                                   tr: { text(body: [2]), +                                                         text(body: [−]) }), +                                       text(body: [,]), +                                       math.attach(base: text(body: [Pb]), +                                                   bl: text(body: [82]), +                                                   tl: text(body: [207])), +                                       text(body: [+]), +                                       math.attach(base: math.upright(body: text(body: [e])), +                                                   bl: { text(body: [−]), +                                                         text(body: [1]) }, +                                                   tl: text(body: [0])), +                                       text(body: [+]), +                                       math.attach(b: text(body: [e]), +                                                   base: math.accent(accent: ¯, +                                                                     base: text(body: [v])), +                                                   t: none), +                                       linebreak() }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-02.out view
@@ -246,15 +246,11 @@     , Text ","     , MAttach         (Just (Text "b"))-        Nothing-        (MAttach-           Nothing-           (Just (Text "t"))-           (Code-              "test/typ/math/attach-02.typ"-              ( line 20 , column 1 )-              (FuncCall-                 (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ])))+        (Just (Text "t"))+        (Code+           "test/typ/math/attach-02.typ"+           ( line 20 , column 1 )+           (FuncCall (Ident (Identifier "limits")) [ BlockArg [ Text "a" ] ]))     , HardBreak     , Code         "test/typ/math/attach-02.typ"@@ -353,119 +349,117 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(base: text(body: [a]), -                                    tl: text(body: [u])), -                        text(body: [,]), -                        math.attach(base: text(body: [a]), -                                    tr: text(body: [v])), -                        text(body: [,]), -                        math.attach(base: text(body: [a]), -                                    bl: text(body: [x])), -                        text(body: [,]), -                        math.attach(base: text(body: [a]), -                                    br: text(body: [y])), -                        text(body: [,]), -                        math.attach(b: none, -                                    base: math.limits(body: text(body: [a])), -                                    t: text(body: [t])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [a])), -                                    t: none), -                        linebreak(), -                        math.attach(base: text(body: [a]), -                                    t: text(body: [t]), -                                    tr: text(body: [v])), -                        text(body: [,]), -                        math.attach(base: text(body: [a]), -                                    br: text(body: [y]), -                                    tr: text(body: [v])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: text(body: [a]), -                                    br: text(body: [y])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [a])), -                                    bl: text(body: [x])), -                        text(body: [,]), -                        math.attach(base: text(body: [a]), -                                    bl: text(body: [x]), -                                    tl: text(body: [u])), -                        text(body: [,]), -                        math.attach(base: math.limits(body: text(body: [a])), -                                    t: text(body: [t]), -                                    tl: text(body: [u])), -                        linebreak(), -                        math.attach(base: text(body: [a]), -                                    tl: text(body: [u]), -                                    tr: text(body: [v])), -                        text(body: [,]), -                        math.attach(base: math.limits(body: text(body: [a])), -                                    br: text(body: [y]), -                                    t: text(body: [t])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [a])), -                                    tr: text(body: [v])), -                        text(body: [,]), -                        math.attach(base: text(body: [a]), -                                    bl: text(body: [x]), -                                    br: text(body: [y])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [a])), -                                    tl: text(body: [u])), -                        text(body: [,]), -                        math.attach(base: math.limits(body: text(body: [a])), -                                    bl: text(body: [u]), -                                    t: text(body: [t])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.attach(b: none, -                                                      base: math.limits(body: text(body: [a])), -                                                      t: text(body: [t])), -                                    t: none), -                        linebreak(), -                        math.attach(base: text(body: [a]), -                                    bl: text(body: [x]), -                                    br: text(body: [y]), -                                    tl: text(body: [u]), -                                    tr: text(body: [v])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [a])), -                                    bl: text(body: [x]), -                                    br: text(body: [y]), -                                    t: text(body: [t])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [a])), -                                    t: text(body: [t]), -                                    tl: text(body: [u]), -                                    tr: text(body: [v])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [a])), -                                    bl: text(body: [x]), -                                    t: text(body: [t]), -                                    tl: text(body: [u])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [a])), -                                    br: text(body: [y]), -                                    t: text(body: [t]), -                                    tr: text(body: [v])), -                        text(body: [,]), -                        math.attach(b: text(body: [b]), -                                    base: text(body: [a]), -                                    bl: text(body: [x]), -                                    br: text(body: [y]), -                                    t: text(body: [t]), -                                    tl: text(body: [u]), -                                    tr: text(body: [v])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(base: text(body: [a]), +                                                   tl: text(body: [u])), +                                       text(body: [,]), +                                       math.attach(base: text(body: [a]), +                                                   tr: text(body: [v])), +                                       text(body: [,]), +                                       math.attach(base: text(body: [a]), +                                                   bl: text(body: [x])), +                                       text(body: [,]), +                                       math.attach(base: text(body: [a]), +                                                   br: text(body: [y])), +                                       text(body: [,]), +                                       math.attach(b: none, +                                                   base: math.limits(body: text(body: [a])), +                                                   t: text(body: [t])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   t: none), +                                       linebreak(), +                                       math.attach(base: text(body: [a]), +                                                   t: text(body: [t]), +                                                   tr: text(body: [v])), +                                       text(body: [,]), +                                       math.attach(base: text(body: [a]), +                                                   br: text(body: [y]), +                                                   tr: text(body: [v])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: text(body: [a]), +                                                   br: text(body: [y])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   bl: text(body: [x])), +                                       text(body: [,]), +                                       math.attach(base: text(body: [a]), +                                                   bl: text(body: [x]), +                                                   tl: text(body: [u])), +                                       text(body: [,]), +                                       math.attach(base: math.limits(body: text(body: [a])), +                                                   t: text(body: [t]), +                                                   tl: text(body: [u])), +                                       linebreak(), +                                       math.attach(base: text(body: [a]), +                                                   tl: text(body: [u]), +                                                   tr: text(body: [v])), +                                       text(body: [,]), +                                       math.attach(base: math.limits(body: text(body: [a])), +                                                   br: text(body: [y]), +                                                   t: text(body: [t])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   tr: text(body: [v])), +                                       text(body: [,]), +                                       math.attach(base: text(body: [a]), +                                                   bl: text(body: [x]), +                                                   br: text(body: [y])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   tl: text(body: [u])), +                                       text(body: [,]), +                                       math.attach(base: math.limits(body: text(body: [a])), +                                                   bl: text(body: [u]), +                                                   t: text(body: [t])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   t: text(body: [t])), +                                       linebreak(), +                                       math.attach(base: text(body: [a]), +                                                   bl: text(body: [x]), +                                                   br: text(body: [y]), +                                                   tl: text(body: [u]), +                                                   tr: text(body: [v])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   bl: text(body: [x]), +                                                   br: text(body: [y]), +                                                   t: text(body: [t])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   t: text(body: [t]), +                                                   tl: text(body: [u]), +                                                   tr: text(body: [v])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   bl: text(body: [x]), +                                                   t: text(body: [t]), +                                                   tl: text(body: [u])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [a])), +                                                   br: text(body: [y]), +                                                   t: text(body: [t]), +                                                   tr: text(body: [v])), +                                       text(body: [,]), +                                       math.attach(b: text(body: [b]), +                                                   base: text(body: [a]), +                                                   bl: text(body: [x]), +                                                   br: text(body: [y]), +                                                   t: text(body: [t]), +                                                   tl: text(body: [u]), +                                                   tr: text(body: [v])) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-03.out view
@@ -55,12 +55,14 @@         , MGroup (Just "(") (Just ")") [ Text "Y" ]         ]     , Text ","-    , MGroup-        Nothing+    , MAttach+        (Just+           (MGroup+              Nothing+              Nothing+              [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] ]))         Nothing-        [ MAttach (Just (Text "f")) Nothing (Text "a")-        , MGroup (Just "(") (Just ")") [ Text "x" ]-        ]+        (Text "a")     , Text ","     , MAttach         Nothing@@ -115,49 +117,49 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { math.attach(b: text(body: [1]), -                                    base: text(body: [π]), -                                    t: none), -                        math.lr(body: ({ [(], -                                         text(body: [Y]), -                                         [)] })), -                        text(body: [,]), -                        math.attach(b: text(body: [f]), -                                    base: text(body: [a]), -                                    t: none), -                        math.lr(body: ({ [(], -                                         text(body: [x]), -                                         [)] })), -                        text(body: [,]), -                        math.attach(b: none, -                                    base: text(body: [a]), -                                    t: { text(body: [ζ]), -                                         text(body: [(]), -                                         text(body: [x]), -                                         text(body: [)]) }), -                        linebreak(), -                        math.attach(b: none, -                                    base: text(body: [a]), -                                    t: { text(body: [⊆]), -                                         text(body: [(]), -                                         text(body: [x]), -                                         text(body: [)]) }), -                        text(body: [,]), -                        math.attach(b: { text(body: [ζ]), -                                         text(body: [(]), -                                         text(body: [x]), -                                         text(body: [)]) }, -                                    base: text(body: [a]), -                                    t: none), -                        text(body: [,]), -                        math.attach(b: { text(body: [1]), -                                         math.lr(body: ({ [(], -                                                          text(body: [Y]), -                                                          [)] })) }, -                                    base: text(body: [π]), -                                    t: none) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.attach(b: text(body: [1]), +                                                   base: text(body: [π]), +                                                   t: none), +                                       math.lr(body: ({ [(], +                                                        text(body: [Y]), +                                                        [)] })), +                                       text(body: [,]), +                                       math.attach(b: { text(body: [f]), +                                                        math.lr(body: ({ [(], +                                                                         text(body: [x]), +                                                                         [)] })) }, +                                                   base: text(body: [a]), +                                                   t: none), +                                       text(body: [,]), +                                       math.attach(b: none, +                                                   base: text(body: [a]), +                                                   t: { text(body: [ζ]), +                                                        text(body: [(]), +                                                        text(body: [x]), +                                                        text(body: [)]) }), +                                       linebreak(), +                                       math.attach(b: none, +                                                   base: text(body: [a]), +                                                   t: { text(body: [⊆]), +                                                        text(body: [(]), +                                                        text(body: [x]), +                                                        text(body: [)]) }), +                                       text(body: [,]), +                                       math.attach(b: { text(body: [ζ]), +                                                        text(body: [(]), +                                                        text(body: [x]), +                                                        text(body: [)]) }, +                                                   base: text(body: [a]), +                                                   t: none), +                                       text(body: [,]), +                                       math.attach(b: { text(body: [1]), +                                                        math.lr(body: ({ [(], +                                                                         text(body: [Y]), +                                                                         [)] })) }, +                                                   base: text(body: [π]), +                                                   t: none) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-04.out view
@@ -280,43 +280,43 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.frac(denom: math.attach(b: none, -                                                     base: math.attach(b: none, -                                                                       base: math.attach(b: none, -                                                                                         base: math.attach(b: none, -                                                                                                           base: text(body: [V]), -                                                                                                           t: text(body: [2])), -                                                                                         t: text(body: [3])), -                                                                       t: text(body: [4])), -                                                     t: text(body: [5])), -                                  num: text(body: [1])), -                        text(body: [,]), -                        math.frac(denom: math.attach(base: text(body: [V]), -                                                     tl: math.attach(base: text(body: [2]), -                                                                     tl: math.attach(base: text(body: [3]), -                                                                                     tl: math.attach(base: text(body: [4]), -                                                                                                     tl: text(body: [5]))))), -                                  num: text(body: [1])), -                        text(body: [,]), -                        math.attach(base: text(body: [Ω]), -                                    bl: math.attach(base: text(body: [2]), -                                                    bl: math.attach(base: text(body: [3]), -                                                                    bl: math.attach(base: text(body: [4]), -                                                                                    bl: text(body: [5])))), -                                    br: math.attach(base: text(body: [2]), -                                                    br: math.attach(base: text(body: [3]), -                                                                    br: math.attach(base: text(body: [4]), -                                                                                    br: text(body: [5])))), -                                    tl: math.attach(base: text(body: [2]), -                                                    tl: math.attach(base: text(body: [3]), -                                                                    tl: math.attach(base: text(body: [4]), -                                                                                    tl: text(body: [5])))), -                                    tr: math.attach(base: text(body: [2]), -                                                    tr: math.attach(base: text(body: [3]), -                                                                    tr: math.attach(base: text(body: [4]), -                                                                                    tr: text(body: [5]))))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.frac(denom: math.attach(b: none, +                                                                    base: math.attach(b: none, +                                                                                      base: math.attach(b: none, +                                                                                                        base: math.attach(b: none, +                                                                                                                          base: text(body: [V]), +                                                                                                                          t: text(body: [2])), +                                                                                                        t: text(body: [3])), +                                                                                      t: text(body: [4])), +                                                                    t: text(body: [5])), +                                                 num: text(body: [1])), +                                       text(body: [,]), +                                       math.frac(denom: math.attach(base: text(body: [V]), +                                                                    tl: math.attach(base: text(body: [2]), +                                                                                    tl: math.attach(base: text(body: [3]), +                                                                                                    tl: math.attach(base: text(body: [4]), +                                                                                                                    tl: text(body: [5]))))), +                                                 num: text(body: [1])), +                                       text(body: [,]), +                                       math.attach(base: text(body: [Ω]), +                                                   bl: math.attach(base: text(body: [2]), +                                                                   bl: math.attach(base: text(body: [3]), +                                                                                   bl: math.attach(base: text(body: [4]), +                                                                                                   bl: text(body: [5])))), +                                                   br: math.attach(base: text(body: [2]), +                                                                   br: math.attach(base: text(body: [3]), +                                                                                   br: math.attach(base: text(body: [4]), +                                                                                                   br: text(body: [5])))), +                                                   tl: math.attach(base: text(body: [2]), +                                                                   tl: math.attach(base: text(body: [3]), +                                                                                   tl: math.attach(base: text(body: [4]), +                                                                                                   tl: text(body: [5])))), +                                                   tr: math.attach(base: text(body: [2]), +                                                                   tr: math.attach(base: text(body: [3]), +                                                                                   tr: math.attach(base: text(body: [4]), +                                                                                                   tr: text(body: [5]))))) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-05.out view
@@ -136,39 +136,39 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.sqrt(radicand: math.attach(b: math.frac(denom: text(body: [2]), -                                                                     num: text(body: [1])), -                                                        base: text(body: [a]), -                                                        t: text(body: [ζ]))), -                        text(body: [,]), -                        math.sqrt(radicand: math.attach(b: text(body: [α]), -                                                        base: text(body: [a]), -                                                        t: math.frac(denom: text(body: [2]), -                                                                     num: text(body: [1])))), -                        text(body: [,]), -                        math.sqrt(radicand: math.attach(b: math.frac(denom: text(body: [2]), -                                                                     num: text(body: [1])), -                                                        base: text(body: [a]), -                                                        t: math.frac(denom: text(body: [4]), -                                                                     num: text(body: [3])))), -                        linebreak(), -                        math.sqrt(radicand: math.attach(base: text(body: [a]), -                                                        bl: math.frac(denom: text(body: [4]), -                                                                      num: text(body: [3])), -                                                        tl: math.frac(denom: text(body: [2]), -                                                                      num: text(body: [1])))), -                        text(body: [,]), -                        math.sqrt(radicand: math.attach(base: text(body: [a]), -                                                        bl: math.frac(denom: text(body: [4]), -                                                                      num: text(body: [3])), -                                                        br: math.frac(denom: text(body: [4]), -                                                                      num: text(body: [3])), -                                                        tl: math.frac(denom: text(body: [2]), -                                                                      num: text(body: [1])), -                                                        tr: math.frac(denom: text(body: [2]), -                                                                      num: text(body: [1])))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.sqrt(radicand: math.attach(b: math.frac(denom: text(body: [2]), +                                                                                    num: text(body: [1])), +                                                                       base: text(body: [a]), +                                                                       t: text(body: [ζ]))), +                                       text(body: [,]), +                                       math.sqrt(radicand: math.attach(b: text(body: [α]), +                                                                       base: text(body: [a]), +                                                                       t: math.frac(denom: text(body: [2]), +                                                                                    num: text(body: [1])))), +                                       text(body: [,]), +                                       math.sqrt(radicand: math.attach(b: math.frac(denom: text(body: [2]), +                                                                                    num: text(body: [1])), +                                                                       base: text(body: [a]), +                                                                       t: math.frac(denom: text(body: [4]), +                                                                                    num: text(body: [3])))), +                                       linebreak(), +                                       math.sqrt(radicand: math.attach(base: text(body: [a]), +                                                                       bl: math.frac(denom: text(body: [4]), +                                                                                     num: text(body: [3])), +                                                                       tl: math.frac(denom: text(body: [2]), +                                                                                     num: text(body: [1])))), +                                       text(body: [,]), +                                       math.sqrt(radicand: math.attach(base: text(body: [a]), +                                                                       bl: math.frac(denom: text(body: [4]), +                                                                                     num: text(body: [3])), +                                                                       br: math.frac(denom: text(body: [4]), +                                                                                     num: text(body: [3])), +                                                                       tl: math.frac(denom: text(body: [2]), +                                                                                     num: text(body: [1])), +                                                                       tr: math.frac(denom: text(body: [2]), +                                                                                     num: text(body: [1])))) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-06.out view
@@ -75,25 +75,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: none, -                                    base: math.lr(body: ({ [(], -                                                           text(body: [−]), -                                                           text(body: [1]), -                                                           [)] })), -                                    t: text(body: [n])), -                        text(body: [+]), -                        math.attach(b: none, -                                    base: math.lr(body: ({ [(], -                                                           math.frac(denom: text(body: [2]), -                                                                     num: text(body: [1])), -                                                           text(body: [+]), -                                                           text(body: [3]), -                                                           [)] })), -                                    t: { text(body: [−]), -                                         math.frac(denom: text(body: [2]), -                                                   num: text(body: [1])) }) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: none, +                                                   base: math.lr(body: ({ [(], +                                                                          text(body: [−]), +                                                                          text(body: [1]), +                                                                          [)] })), +                                                   t: text(body: [n])), +                                       text(body: [+]), +                                       math.attach(b: none, +                                                   base: math.lr(body: ({ [(], +                                                                          math.frac(denom: text(body: [2]), +                                                                                    num: text(body: [1])), +                                                                          text(body: [+]), +                                                                          text(body: [3]), +                                                                          [)] })), +                                                   t: { text(body: [−]), +                                                        math.frac(denom: text(body: [2]), +                                                                  num: text(body: [1])) }) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-07.out view
@@ -160,34 +160,24 @@            "test/typ/math/attach-07.typ"            ( line 8 , column 20 )            (Ident (Identifier "integral")))-    , MAttach-        (Just (Text "1"))-        (Just (Text "1"))-        (MGroup (Just "|") (Just "|") [ MFrac (Text "1") (Text "2") ])+    , Text "|"+    , MFrac (Text "1") (Text "2")+    , MAttach (Just (Text "1")) (Just (Text "1")) (Text "|")     , HardBreak-    , MAttach-        (Just (Text "1"))-        Nothing-        (MAttach Nothing (Just (Text "1")) (Text "x"))+    , MAttach (Just (Text "1")) (Just (Text "1")) (Text "x")     , Text ","     , Text " ("     , Text "b"     , Text "y"-    , MAttach-        (Just (Text "1"))-        Nothing-        (MAttach Nothing (Just (Text "1")) (Text ")"))+    , MAttach (Just (Text "1")) (Just (Text "1")) (Text ")")     , Code         "test/typ/math/attach-07.typ"         ( line 9 , column 24 )         (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq")))     , MAttach         (Just (Text "1"))-        Nothing-        (MAttach-           Nothing-           (Just (Text "1"))-           (MGroup (Just "(") (Just ")") [ Text "b" , Text "y" ]))+        (Just (Text "1"))+        (MGroup (Just "(") (Just ")") [ Text "b" , Text "y" ])     , Text ","     , MAttach (Just (Text "1")) Nothing (Text " [\8747]")     , MAttach@@ -205,231 +195,232 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  math.equation(block: true, -                body: { math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [x], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [p], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: math.frak(body: text(body: [p], -                                                               size: 8.0pt)), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [2], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [⋅], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: math.op(limits: false, -                                                  text: "lg"), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [!], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [\], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: []], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [ ip], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: math.op(text: text(body: [iq], -                                                             size: 8.0pt)), -                                    t: none), -                        linebreak(), -                        math.attach(b: none, -                                    base: text(body: [x], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: [b], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: math.frak(body: text(body: [b], -                                                               size: 8.0pt)), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: [2], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: [⋅], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: math.op(limits: false, -                                                  text: "lg"), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: [!], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: [\], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: []], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: [ ib], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: math.op(text: text(body: [id], -                                                             size: 8.0pt)), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        linebreak(), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [x], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [y], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: text(body: [ _], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: none, -                                    base: text(body: [x], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: [l], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: none, -                                    base: text(body: [ `], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(base: text(body: [I], -                                               size: 8.0pt), -                                    bl: text(body: [1], -                                             size: 8.0pt), -                                    br: text(body: [1], -                                             size: 8.0pt), -                                    tl: text(body: [1], -                                             size: 8.0pt), -                                    tr: text(body: [1], -                                             size: 8.0pt)), -                        math.attach(b: text(body: [1], -                                            size: 8.0pt), -                                    base: math.scripts(body: text(body: [∑], -                                                                  size: 8.0pt)), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: text(body: [1], +                 parbreak(), +                 math.equation(block: true, +                               body: { math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [x], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [p], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: math.frak(body: text(body: [p], +                                                                              size: 8.0pt)), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [2], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [⋅], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: math.op(limits: false, +                                                                 text: "lg"), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [!], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [\], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: []], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [ ip], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: math.op(text: text(body: [iq], +                                                                            size: 8.0pt)), +                                                   t: none), +                                       linebreak(), +                                       math.attach(b: none, +                                                   base: text(body: [x], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: [b], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: math.frak(body: text(body: [b], +                                                                              size: 8.0pt)), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: [2], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: [⋅], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: math.op(limits: false, +                                                                 text: "lg"), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: [!], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: [\], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: []], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: [ ib], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: math.op(text: text(body: [id], +                                                                            size: 8.0pt)), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       linebreak(), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [x], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [y], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [ _], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: none, +                                                   base: text(body: [x], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: [l], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: none, +                                                   base: text(body: [ `], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(base: text(body: [I], +                                                              size: 8.0pt), +                                                   bl: text(body: [1], +                                                            size: 8.0pt), +                                                   br: text(body: [1], +                                                            size: 8.0pt), +                                                   tl: text(body: [1], +                                                            size: 8.0pt), +                                                   tr: text(body: [1], +                                                            size: 8.0pt)), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: math.scripts(body: text(body: [∑], +                                                                                 size: 8.0pt)), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [∫], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       text(body: [|],                                              size: 8.0pt), -                                    base: text(body: [∫], -                                               size: 8.0pt), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        math.attach(b: text(body: [1], +                                       math.frac(denom: text(body: [2], +                                                             size: 8.0pt), +                                                 num: text(body: [1], +                                                           size: 8.0pt)), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [|], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       linebreak(), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [x], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       text(body: [,],                                              size: 8.0pt), -                                    base: math.lr(body: ({ [|], -                                                           math.frac(denom: text(body: [2], -                                                                                 size: 8.0pt), -                                                                     num: text(body: [1], -                                                                               size: 8.0pt)), -                                                           [|] })), -                                    t: text(body: [1], -                                            size: 8.0pt)), -                        linebreak(), -                        math.attach(b: text(body: [1], +                                       text(body: [ (],                                              size: 8.0pt), -                                    base: math.attach(b: none, -                                                      base: text(body: [x], -                                                                 size: 8.0pt), -                                                      t: text(body: [1], -                                                              size: 8.0pt)), -                                    t: none), -                        text(body: [,], size: 8.0pt), -                        text(body: [ (], -                             size: 8.0pt), -                        text(body: [b], size: 8.0pt), -                        text(body: [y], size: 8.0pt), -                        math.attach(b: text(body: [1], +                                       text(body: [b],                                              size: 8.0pt), -                                    base: math.attach(b: none, -                                                      base: text(body: [)], -                                                                 size: 8.0pt), -                                                      t: text(body: [1], -                                                              size: 8.0pt)), -                                    t: none), -                        text(body: [≠], size: 8.0pt), -                        math.attach(b: text(body: [1], +                                       text(body: [y],                                              size: 8.0pt), -                                    base: math.attach(b: none, -                                                      base: math.lr(body: ({ [(], -                                                                             text(body: [b], -                                                                                  size: 8.0pt), -                                                                             text(body: [y], -                                                                                  size: 8.0pt), -                                                                             [)] })), -                                                      t: text(body: [1], -                                                              size: 8.0pt)), -                                    t: none), -                        text(body: [,], size: 8.0pt), -                        math.attach(b: text(body: [1], +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [)], +                                                              size: 8.0pt), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       text(body: [≠],                                              size: 8.0pt), -                                    base: text(body: [ [∫]], -                                               size: 8.0pt), -                                    t: none), -                        math.attach(b: text(body: [1], +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: math.lr(body: ({ [(], +                                                                          text(body: [b], +                                                                               size: 8.0pt), +                                                                          text(body: [y], +                                                                               size: 8.0pt), +                                                                          [)] })), +                                                   t: text(body: [1], +                                                           size: 8.0pt)), +                                       text(body: [,],                                              size: 8.0pt), -                                    base: math.lr(body: ({ [[], -                                                           text(body: [∫], -                                                                size: 8.0pt), -                                                           []] })), -                                    t: none) }, -                numbering: none), -  parbreak() }+                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: text(body: [ [∫]], +                                                              size: 8.0pt), +                                                   t: none), +                                       math.attach(b: text(body: [1], +                                                           size: 8.0pt), +                                                   base: math.lr(body: ({ [[], +                                                                          text(body: [∫], +                                                                               size: 8.0pt), +                                                                          []] })), +                                                   t: none) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-08.out view
@@ -94,27 +94,27 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: { text(body: [n]), -                                         text(body: [→]), -                                         text(body: [∞]), -                                         linebreak(), -                                         text(body: [n]), -                                         text(body: [ grows]) }, -                                    base: math.op(limits: true, -                                                  text: "lim"), -                                    t: none), -                        math.attach(b: { text(body: [k]), -                                         text(body: [=]), -                                         text(body: [0]), -                                         linebreak(), -                                         text(body: [k]), -                                         text(body: [∈]), -                                         text(body: [ℕ]) }, -                                    base: text(body: [∑]), -                                    t: text(body: [n])), -                        text(body: [k]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: { text(body: [n]), +                                                        text(body: [→]), +                                                        text(body: [∞]), +                                                        linebreak(), +                                                        text(body: [n]), +                                                        text(body: [ grows]) }, +                                                   base: math.op(limits: true, +                                                                 text: "lim"), +                                                   t: none), +                                       math.attach(b: { text(body: [k]), +                                                        text(body: [=]), +                                                        text(body: [0]), +                                                        linebreak(), +                                                        text(body: [k]), +                                                        text(body: [∈]), +                                                        text(body: [ℕ]) }, +                                                   base: text(body: [∑]), +                                                   t: text(body: [n])), +                                       text(body: [k]) }, +                               numbering: none), +                 parbreak() })
test/out/math/attach-09.out view
@@ -118,37 +118,37 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: text(body: [1]), -                                    base: math.limits(body: text(body: [A])), -                                    t: text(body: [2])), -                        text(body: [≠]), -                        math.attach(b: text(body: [1]), -                                    base: text(body: [A]), -                                    t: text(body: [2])) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { math.attach(b: text(body: [1]), +                                                   base: math.limits(body: text(body: [A])), +                                                   t: text(body: [2])), +                                       text(body: [≠]), +                                       math.attach(b: text(body: [1]), +                                                   base: text(body: [A]), +                                                   t: text(body: [2])) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: text(body: [1]), -                                    base: math.scripts(body: text(body: [∑])), -                                    t: text(body: [2])), -                        text(body: [≠]), -                        math.attach(b: text(body: [1]), -                                    base: text(body: [∑]), -                                    t: text(body: [2])) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { math.attach(b: text(body: [1]), +                                                   base: math.scripts(body: text(body: [∑])), +                                                   t: text(body: [2])), +                                       text(body: [≠]), +                                       math.attach(b: text(body: [1]), +                                                   base: text(body: [∑]), +                                                   t: text(body: [2])) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: text(body: [a]), -                                    base: math.limits(body: text(body: [∫])), -                                    t: text(body: [b])), -                        text(body: [≠]), -                        math.attach(b: text(body: [a]), -                                    base: text(body: [∫]), -                                    t: text(body: [b])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: text(body: [a]), +                                                   base: math.limits(body: text(body: [∫])), +                                                   t: text(body: [b])), +                                       text(body: [≠]), +                                       math.attach(b: text(body: [a]), +                                                   base: text(body: [∫]), +                                                   t: text(body: [b])) }, +                               numbering: none), +                 parbreak() })
test/out/math/cancel-00.out view
@@ -112,30 +112,30 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [+]), -                        text(body: [5]), -                        text(body: [+]), -                        math.cancel(body: text(body: [x])), -                        text(body: [+]), -                        text(body: [b]), -                        text(body: [−]), -                        math.cancel(body: text(body: [x])) }, -                numbering: none), -  parbreak(), -  math.equation(block: false, -                body: { text(body: [c]), -                        text(body: [+]), -                        math.frac(denom: math.cancel(body: { text(body: [b]), -                                                             text(body: [·]), -                                                             text(body: [c]) }), -                                  num: { text(body: [a]), -                                         text(body: [·]), -                                         math.cancel(body: { text(body: [b]), -                                                             text(body: [·]), -                                                             text(body: [c]) }) }) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       text(body: [5]), +                                       text(body: [+]), +                                       math.cancel(body: text(body: [x])), +                                       text(body: [+]), +                                       text(body: [b]), +                                       text(body: [−]), +                                       math.cancel(body: text(body: [x])) }, +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: { text(body: [c]), +                                       text(body: [+]), +                                       math.frac(denom: math.cancel(body: { text(body: [b]), +                                                                            text(body: [·]), +                                                                            text(body: [c]) }), +                                                 num: { text(body: [a]), +                                                        text(body: [·]), +                                                        math.cancel(body: { text(body: [b]), +                                                                            text(body: [·]), +                                                                            text(body: [c]) }) }) }, +                               numbering: none), +                 parbreak() })
test/out/math/cancel-01.out view
@@ -136,47 +136,47 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [a]), -                        text(body: [+]), -                        text(body: [b]), -                        text(body: [+]), -                        math.cancel(body: { text(body: [b]), -                                            text(body: [+]), -                                            text(body: [c]) }), -                        text(body: [−]), -                        math.cancel(body: text(body: [b])), -                        text(body: [−]), -                        math.cancel(body: text(body: [c])), -                        text(body: [−]), -                        text(body: [5]), -                        text(body: [+]), -                        math.cancel(body: text(body: [6])), -                        text(body: [−]), -                        math.cancel(body: text(body: [6])) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       text(body: [b]), +                                       text(body: [+]), +                                       math.cancel(body: { text(body: [b]), +                                                           text(body: [+]), +                                                           text(body: [c]) }), +                                       text(body: [−]), +                                       math.cancel(body: text(body: [b])), +                                       text(body: [−]), +                                       math.cancel(body: text(body: [c])), +                                       text(body: [−]), +                                       text(body: [5]), +                                       text(body: [+]), +                                       math.cancel(body: text(body: [6])), +                                       text(body: [−]), +                                       math.cancel(body: text(body: [6])) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [e]), -                        text(body: [+]), -                        math.frac(denom: math.cancel(body: { text(body: [b]), -                                                             text(body: [+]), -                                                             text(body: [c]), -                                                             text(body: [+]), -                                                             text(body: [d]) }), -                                  num: { text(body: [a]), -                                         text(body: [·]), -                                         math.cancel(body: math.lr(body: ({ [(], -                                                                            text(body: [b]), +                 math.equation(block: true, +                               body: { text(body: [e]), +                                       text(body: [+]), +                                       math.frac(denom: math.cancel(body: { text(body: [b]),                                                                              text(body: [+]),                                                                              text(body: [c]),                                                                              text(body: [+]), -                                                                            text(body: [d]), -                                                                            [)] }))) }) }, -                numbering: none), -  parbreak() }+                                                                            text(body: [d]) }), +                                                 num: { text(body: [a]), +                                                        text(body: [·]), +                                                        math.cancel(body: math.lr(body: ({ [(], +                                                                                           text(body: [b]), +                                                                                           text(body: [+]), +                                                                                           text(body: [c]), +                                                                                           text(body: [+]), +                                                                                           text(body: [d]), +                                                                                           [)] }))) }) }, +                               numbering: none), +                 parbreak() })
test/out/math/cancel-02.out view
@@ -97,29 +97,29 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [+]), -                        math.cancel(body: text(body: [x]), -                                    inverted: true), -                        text(body: [−]), -                        math.cancel(body: text(body: [x]), -                                    inverted: true), -                        text(body: [+]), -                        text(body: [10]), -                        text(body: [+]), -                        math.cancel(body: text(body: [y])), -                        text(body: [−]), -                        math.cancel(body: text(body: [y])) }, -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       math.cancel(body: text(body: [x]), +                                                   inverted: true), +                                       text(body: [−]), +                                       math.cancel(body: text(body: [x]), +                                                   inverted: true), +                                       text(body: [+]), +                                       text(body: [10]), +                                       text(body: [+]), +                                       math.cancel(body: text(body: [y])), +                                       text(body: [−]), +                                       math.cancel(body: text(body: [y])) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        text(body: [+]), -                        math.cancel(body: text(body: [abcdefg]), -                                    inverted: true) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       text(body: [+]), +                                       math.cancel(body: text(body: [abcdefg]), +                                                   inverted: true) }, +                               numbering: none), +                 parbreak() })
test/out/math/cancel-03.out view
@@ -75,33 +75,33 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [+]), -                        math.cancel(body: { text(body: [b]), -                                            text(body: [+]), -                                            text(body: [c]), -                                            text(body: [+]), -                                            text(body: [d]) }, -                                    cross: true, -                                    stroke: rgb(100%,25%,21%,100%)), -                        text(body: [+]), -                        text(body: [e]) }, -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       math.cancel(body: { text(body: [b]), +                                                           text(body: [+]), +                                                           text(body: [c]), +                                                           text(body: [+]), +                                                           text(body: [d]) }, +                                                   cross: true, +                                                   stroke: rgb(100%,25%,21%,100%)), +                                       text(body: [+]), +                                       text(body: [e]) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [a]), -                        text(body: [+]), -                        math.cancel(body: { text(body: [b]), -                                            text(body: [+]), -                                            text(body: [c]), -                                            text(body: [+]), -                                            text(body: [d]) }, -                                    cross: true), -                        text(body: [+]), -                        text(body: [e]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       math.cancel(body: { text(body: [b]), +                                                           text(body: [+]), +                                                           text(body: [c]), +                                                           text(body: [+]), +                                                           text(body: [d]) }, +                                                   cross: true), +                                       text(body: [+]), +                                       text(body: [e]) }, +                               numbering: none), +                 parbreak() })
test/out/math/cancel-04.out view
@@ -113,36 +113,36 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [+]), -                        math.cancel(body: text(body: [x]), -                                    length: 200%), -                        text(body: [−]), -                        math.cancel(body: text(body: [x]), -                                    length: 50%, -                                    stroke: (thickness: 1.1pt,-                                             color: rgb(100%,25%,21%,100%))) }, -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       math.cancel(body: text(body: [x]), +                                                   length: 200%), +                                       text(body: [−]), +                                       math.cancel(body: text(body: [x]), +                                                   length: 50%, +                                                   stroke: (thickness: 1.1pt,+                                                            color: rgb(100%,25%,21%,100%))) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [b]), -                        text(body: [+]), -                        math.cancel(body: text(body: [x]), -                                    length: 150%), -                        text(body: [−]), -                        math.cancel(body: { text(body: [a]), -                                            text(body: [+]), -                                            text(body: [b]), -                                            text(body: [+]), -                                            text(body: [c]) }, -                                    length: 50%, -                                    stroke: (thickness: 1.2pt,-                                             color: rgb(0%,45%,85%,100%))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [b]), +                                       text(body: [+]), +                                       math.cancel(body: text(body: [x]), +                                                   length: 150%), +                                       text(body: [−]), +                                       math.cancel(body: { text(body: [a]), +                                                           text(body: [+]), +                                                           text(body: [b]), +                                                           text(body: [+]), +                                                           text(body: [c]) }, +                                                   length: 50%, +                                                   stroke: (thickness: 1.2pt,+                                                            color: rgb(0%,45%,85%,100%))) }, +                               numbering: none), +                 parbreak() })
test/out/math/cancel-05.out view
@@ -101,35 +101,35 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [x]), -                        text(body: [+]), -                        math.cancel(body: text(body: [y]), -                                    rotation: 90.0deg), -                        text(body: [−]), -                        math.cancel(body: text(body: [z]), -                                    rotation: 135.0deg) }, -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: { text(body: [x]), +                                       text(body: [+]), +                                       math.cancel(body: text(body: [y]), +                                                   rotation: 90.0deg), +                                       text(body: [−]), +                                       math.cancel(body: text(body: [z]), +                                                   rotation: 135.0deg) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [e]), -                        text(body: [+]), -                        math.cancel(body: math.frac(denom: { text(body: [f]), -                                                             text(body: [+]), -                                                             text(body: [e]) }, -                                                    num: { text(body: [j]), -                                                           text(body: [+]), -                                                           text(body: [e]) })), -                        text(body: [−]), -                        math.cancel(body: math.frac(denom: { text(body: [f]), -                                                             text(body: [+]), -                                                             text(body: [e]) }, -                                                    num: { text(body: [j]), -                                                           text(body: [+]), -                                                           text(body: [e]) }), -                                    rotation: 30.0deg) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [e]), +                                       text(body: [+]), +                                       math.cancel(body: math.frac(denom: { text(body: [f]), +                                                                            text(body: [+]), +                                                                            text(body: [e]) }, +                                                                   num: { text(body: [j]), +                                                                          text(body: [+]), +                                                                          text(body: [e]) })), +                                       text(body: [−]), +                                       math.cancel(body: math.frac(denom: { text(body: [f]), +                                                                            text(body: [+]), +                                                                            text(body: [e]) }, +                                                                   num: { text(body: [j]), +                                                                          text(body: [+]), +                                                                          text(body: [e]) }), +                                                   rotation: 30.0deg) }, +                               numbering: none), +                 parbreak() })
test/out/math/cases-00.out view
@@ -114,40 +114,40 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [f]), -                        math.lr(body: ({ [(], -                                         text(body: [x]), -                                         text(body: [,]), -                                         text(body: [y]), -                                         [)] })), -                        text(body: [≔]), -                        math.cases(children: ({ text(body: [1]), -                                                text(body: [ ]), -                                                math.alignpoint(), -                                                text(body: [if ]), -                                                math.frac(denom: text(body: [2]), -                                                          num: { text(body: [x]), -                                                                 text(body: [⋅]), -                                                                 text(body: [y]) }), -                                                text(body: [≤]), -                                                text(body: [0]) }, -                                              { text(body: [2]), -                                                math.alignpoint(), -                                                text(body: [if ]), -                                                text(body: [x]), -                                                text(body: [∣]), -                                                text(body: [2]) }, -                                              { text(body: [3]), -                                                math.alignpoint(), -                                                text(body: [if ]), -                                                text(body: [x]), -                                                text(body: [∈]), -                                                text(body: [ℕ]) }, -                                              { text(body: [4]), -                                                math.alignpoint(), -                                                text(body: [else]) })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [f]), +                                       math.lr(body: ({ [(], +                                                        text(body: [x]), +                                                        text(body: [,]), +                                                        text(body: [y]), +                                                        [)] })), +                                       text(body: [≔]), +                                       math.cases(children: ({ text(body: [1]), +                                                               text(body: [ ]), +                                                               math.alignpoint(), +                                                               text(body: [if ]), +                                                               math.frac(denom: text(body: [2]), +                                                                         num: { text(body: [x]), +                                                                                text(body: [⋅]), +                                                                                text(body: [y]) }), +                                                               text(body: [≤]), +                                                               text(body: [0]) }, +                                                             { text(body: [2]), +                                                               math.alignpoint(), +                                                               text(body: [if ]), +                                                               text(body: [x]), +                                                               text(body: [∣]), +                                                               text(body: [2]) }, +                                                             { text(body: [3]), +                                                               math.alignpoint(), +                                                               text(body: [if ]), +                                                               text(body: [x]), +                                                               text(body: [∈]), +                                                               text(body: [ℕ]) }, +                                                             { text(body: [4]), +                                                               math.alignpoint(), +                                                               text(body: [else]) })) }, +                               numbering: none), +                 parbreak() })
test/out/math/content-00.out view
@@ -95,21 +95,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: { text(body: [i]), -                                         text(body: [=]), -                                         text(body: [🍏]) }, -                                    base: text(body: [∑]), -                                    t: text(body: [🍎])), -                        text(body: [i]), -                        text(body: [+]), -                        math.frac(denom: text(body: [2]), -                                  num: move(body: image(height: 1.0em, -                                                        path: "test/assets/files/monkey.svg"), -                                            dy: 0.2em)) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: { text(body: [i]), +                                                        text(body: [=]), +                                                        text(body: [🍏]) }, +                                                   base: text(body: [∑]), +                                                   t: text(body: [🍎])), +                                       text(body: [i]), +                                       text(body: [+]), +                                       math.frac(denom: text(body: [2]), +                                                 num: move(body: image(height: 1.0em, +                                                                       path: "test/assets/files/monkey.svg"), +                                                           dy: 0.2em)) }, +                               numbering: none), +                 parbreak() })
test/out/math/content-01.out view
@@ -81,20 +81,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        text(body: [≔]), -                        math.frac(denom: math.mat(rows: ((text(body: [1]), -                                                          text(body: [2]), -                                                          text(body: [3])))), -                                  num: table(children: (text(body: [x]), -                                                        text(body: [y])), -                                             columns: 2)), -                        text(body: [=]), -                        table(children: (text(body: [A]), -                                         text(body: [B]), -                                         text(body: [C]))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       text(body: [≔]), +                                       math.frac(denom: math.mat(rows: ((text(body: [1]), +                                                                         text(body: [2]), +                                                                         text(body: [3])))), +                                                 num: table(children: (text(body: [x]), +                                                                       text(body: [y])), +                                                            columns: 2)), +                                       text(body: [=]), +                                       table(children: (text(body: [A]), +                                                        text(body: [B]), +                                                        text(body: [C]))) }, +                               numbering: none), +                 parbreak() })
test/out/math/content-02.out view
@@ -52,10 +52,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.attach(base: math.equation(block: false, -                                  body: text(body: [a]), -                                  numbering: none), -              t: text(body: [b])), -  parbreak() }+                 math.attach(base: math.equation(block: false, +                                                 body: text(body: [a]), +                                                 numbering: none), +                             t: text(body: [b])), +                 parbreak() })
test/out/math/content-03.out view
@@ -72,18 +72,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: false, -                body: { text(body: text(body: [f]), -                             font: "Noto Sans"), -                        text(body: [≔]), -                        text(body: { text(body: [Hi]), -                                     text(body: [ ]), -                                     text(body: [there]) }, -                             font: "Noto Sans") }, -                numbering: none), -  text(body: [.]), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: text(body: [f]), +                                            font: "Noto Sans"), +                                       text(body: [≔]), +                                       text(body: { text(body: [Hi]), +                                                    text(body: [ ]), +                                                    text(body: [there]) }, +                                            font: "Noto Sans") }, +                               numbering: none), +                 text(body: [.]), +                 parbreak() })
test/out/math/delimited-00.out view
@@ -46,7 +46,9 @@     , Text "+"     , MGroup (Just "{") (Just "}") [ MFrac (Text "b") (Text "2") ]     , Text "+"-    , MFrac (MGroup (Just "|") (Just "|") [ Text "a" ]) (Text "2")+    , Text "|"+    , Text "a"+    , MFrac (Text "|") (Text "2")     , Text "+"     , MGroup (Just "(") (Just ")") [ Text "b" ]     ]@@ -68,58 +70,59 @@            [ BlockArg                [ MAttach Nothing (Just (Text "2")) (Text "c")                , Text "+"-               , MGroup-                   (Just "|")-                   (Just "|")-                   [ Text "a" , Text "+" , MFrac (Text "b") (Text "2") ]+               , Text "|"+               , Text "a"+               , Text "+"+               , MFrac (Text "b") (Text "2")+               , Text "|"                ]            ])     ] , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.lr(body: ({ [(], -                                         text(body: [a]), -                                         [)] })), -                        text(body: [+]), -                        math.lr(body: ({ [{], -                                         math.frac(denom: text(body: [2]), -                                                   num: text(body: [b])), -                                         [}] })), -                        text(body: [+]), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [|], +                 math.equation(block: true, +                               body: { math.lr(body: ({ [(],                                                          text(body: [a]), -                                                        [|] }))), -                        text(body: [+]), -                        math.lr(body: ({ [(], -                                         text(body: [b]), -                                         [)] })) }, -                numbering: none), -  text(body: [+                                                        [)] })), +                                       text(body: [+]), +                                       math.lr(body: ({ [{], +                                                        math.frac(denom: text(body: [2]), +                                                                  num: text(body: [b])), +                                                        [}] })), +                                       text(body: [+]), +                                       text(body: [|]), +                                       text(body: [a]), +                                       math.frac(denom: text(body: [2]), +                                                 num: text(body: [|])), +                                       text(body: [+]), +                                       math.lr(body: ({ [(], +                                                        text(body: [b]), +                                                        [)] })) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [f]), -                        math.lr(body: ({ [(], -                                         math.frac(denom: text(body: [2]), -                                                   num: text(body: [x])), -                                         [)] })), -                        text(body: [<]), -                        text(body: [ζ]), -                        text(body: [(]), -                        math.attach(b: none, -                                    base: text(body: [c]), -                                    t: text(body: [2])), -                        text(body: [+]), -                        math.lr(body: ({ [|], -                                         text(body: [a]), -                                         text(body: [+]), -                                         math.frac(denom: text(body: [2]), -                                                   num: text(body: [b])), -                                         [|] })), -                        text(body: [)]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [f]), +                                       math.lr(body: ({ [(], +                                                        math.frac(denom: text(body: [2]), +                                                                  num: text(body: [x])), +                                                        [)] })), +                                       text(body: [<]), +                                       text(body: [ζ]), +                                       text(body: [(]), +                                       math.attach(b: none, +                                                   base: text(body: [c]), +                                                   t: text(body: [2])), +                                       text(body: [+]), +                                       text(body: [|]), +                                       text(body: [a]), +                                       text(body: [+]), +                                       math.frac(denom: text(body: [2]), +                                                 num: text(body: [b])), +                                       text(body: [|]), +                                       text(body: [)]) }, +                               numbering: none), +                 parbreak() })
test/out/math/delimited-01.out view
@@ -77,25 +77,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [[]), -                        text(body: [1]), -                        text(body: [,]), -                        text(body: [2]), -                        text(body: [[]), -                        text(body: [=]), -                        text(body: [[]), -                        text(body: [1]), -                        text(body: [,]), -                        text(body: [2]), -                        text(body: [)]), -                        text(body: [≠]), -                        text(body: [ζ]), -                        text(body: [(]), -                        math.frac(denom: text(body: [2]), -                                  num: text(body: [x])), -                        text(body: [)]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [[]), +                                       text(body: [1]), +                                       text(body: [,]), +                                       text(body: [2]), +                                       text(body: [[]), +                                       text(body: [=]), +                                       text(body: [[]), +                                       text(body: [1]), +                                       text(body: [,]), +                                       text(body: [2]), +                                       text(body: [)]), +                                       text(body: [≠]), +                                       text(body: [ζ]), +                                       text(body: [(]), +                                       math.frac(denom: text(body: [2]), +                                                 num: text(body: [x])), +                                       text(body: [)]) }, +                               numbering: none), +                 parbreak() })
test/out/math/delimited-02.out view
@@ -42,12 +42,23 @@ , Comment , Equation     True-    [ MGroup-        (Just "[")-        (Just "]")-        [ MGroup (Just "|") (Just "|") [ MFrac (Text "a") (Text "b") ] ]+    [ Code+        "test/typ/math/delimited-02.typ"+        ( line 3 , column 3 )+        (FieldAccess+           (Ident (Identifier "l"))+           (FieldAccess+              (Ident (Identifier "double")) (Ident (Identifier "bracket"))))+    , MFrac (Text "a") (Text "b")     , Code         "test/typ/math/delimited-02.typ"+        ( line 3 , column 8 )+        (FieldAccess+           (Ident (Identifier "r"))+           (FieldAccess+              (Ident (Identifier "double")) (Ident (Identifier "bracket"))))+    , Code+        "test/typ/math/delimited-02.typ"         ( line 3 , column 11 )         (FieldAccess (Ident (Identifier "not")) (Ident (Identifier "eq")))     , Code@@ -56,9 +67,21 @@         (FuncCall            (Ident (Identifier "lr"))            [ BlockArg-               [ MGroup-                   (Just "|") (Just "|") [ Text "]" , MFrac (Text "a") (Text "b") ]-               , Text "]"+               [ Code+                   "test/typ/math/delimited-02.typ"+                   ( line 3 , column 17 )+                   (FieldAccess+                      (Ident (Identifier "r"))+                      (FieldAccess+                         (Ident (Identifier "double")) (Ident (Identifier "bracket"))))+               , MFrac (Text "a") (Text "b")+               , Code+                   "test/typ/math/delimited-02.typ"+                   ( line 3 , column 22 )+                   (FieldAccess+                      (Ident (Identifier "r"))+                      (FieldAccess+                         (Ident (Identifier "double")) (Ident (Identifier "bracket"))))                ]            ])     , Code@@ -76,58 +99,48 @@         ( line 4 , column 3 )         (FuncCall            (Ident (Identifier "lr"))-           [ BlockArg-               [ MGroup-                   (Just "|")-                   (Just "|")-                   [ Text "]"-                   , Text "1"-                   , Text ","-                   , Text "2"-                   , Text "["-                   , Text "+"-                   , MFrac (Text "1") (Text "2")-                   ]+           [ BlockArg [ Text "|" , Text "]" , Text "1" ]+           , BlockArg+               [ Text "2"+               , Text "["+               , Text "+"+               , MFrac (Text "1") (Text "2")+               , Text "|"                ]            ])     ] , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.lr(body: ({ [[], -                                         math.lr(body: ({ [|], -                                                          math.frac(denom: text(body: [b]), -                                                                    num: text(body: [a])), -                                                          [|] })), -                                         []] })), -                        text(body: [≠]), -                        math.lr(body: ({ math.lr(body: ({ [|], -                                                          text(body: []]), -                                                          math.frac(denom: text(body: [b]), -                                                                    num: text(body: [a])), -                                                          [|] })), -                                         text(body: []]) })), -                        text(body: [≠]), -                        text(body: [[]), -                        math.frac(denom: text(body: [b]), -                                  num: text(body: [a])), -                        text(body: [)]) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [⟦]), +                                       math.frac(denom: text(body: [b]), +                                                 num: text(body: [a])), +                                       text(body: [⟧]), +                                       text(body: [≠]), +                                       math.lr(body: ({ text(body: [⟧]), +                                                        math.frac(denom: text(body: [b]), +                                                                  num: text(body: [a])), +                                                        text(body: [⟧]) })), +                                       text(body: [≠]), +                                       text(body: [[]), +                                       math.frac(denom: text(body: [b]), +                                                 num: text(body: [a])), +                                       text(body: [)]) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.lr(body: (math.lr(body: ({ [|], +                 math.equation(block: true, +                               body: math.lr(body: ({ text(body: [|]),                                                        text(body: []]), -                                                      text(body: [1]), -                                                      text(body: [,]), -                                                      text(body: [2]), +                                                      text(body: [1]) }, +                                                    { text(body: [2]),                                                        text(body: [[]),                                                        text(body: [+]),                                                        math.frac(denom: text(body: [2]),                                                                  num: text(body: [1])), -                                                      [|] })))), -                numbering: none), -  parbreak() }+                                                      text(body: [|]) })), +                               numbering: none), +                 parbreak() })
test/out/math/delimited-03.out view
@@ -42,52 +42,55 @@ , Comment , Equation     True-    [ MGroup (Just "|") (Just "|") [ Text "x" , Text "+" ]+    [ Text "|"+    , Text "x"+    , Text "+"+    , Text "|"     , Text "y"-    , MGroup-        (Just "|") (Just "|") [ Text "+" , MFrac (Text "z") (Text "a") ]+    , Text "|"+    , Text "+"+    , MFrac (Text "z") (Text "a")+    , Text "|"     , HardBreak-    , MGroup-        (Just "|")-        (Just "|")-        [ Text "x"-        , Text "+"-        , Code-            "test/typ/math/delimited-03.typ"-            ( line 4 , column 8 )-            (FuncCall-               (Ident (Identifier "lr"))-               [ BlockArg [ MGroup (Just "|") (Just "|") [ Text "y" ] ] ])-        , Text "+"-        , MFrac (Text "z") (Text "a")-        ]+    , Text "|"+    , Text "x"+    , Text "+"+    , Code+        "test/typ/math/delimited-03.typ"+        ( line 4 , column 8 )+        (FuncCall+           (Ident (Identifier "lr"))+           [ BlockArg [ Text "|" , Text "y" , Text "|" ] ])+    , Text "+"+    , MFrac (Text "z") (Text "a")+    , Text "|"     ] , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.lr(body: ({ [|], -                                         text(body: [x]), -                                         text(body: [+]), -                                         [|] })), -                        text(body: [y]), -                        math.lr(body: ({ [|], -                                         text(body: [+]), -                                         math.frac(denom: text(body: [a]), -                                                   num: text(body: [z])), -                                         [|] })), -                        linebreak(), -                        math.lr(body: ({ [|], -                                         text(body: [x]), -                                         text(body: [+]), -                                         math.lr(body: (math.lr(body: ({ [|], -                                                                         text(body: [y]), -                                                                         [|] })))), -                                         text(body: [+]), -                                         math.frac(denom: text(body: [a]), -                                                   num: text(body: [z])), -                                         [|] })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [|]), +                                       text(body: [x]), +                                       text(body: [+]), +                                       text(body: [|]), +                                       text(body: [y]), +                                       text(body: [|]), +                                       text(body: [+]), +                                       math.frac(denom: text(body: [a]), +                                                 num: text(body: [z])), +                                       text(body: [|]), +                                       linebreak(), +                                       text(body: [|]), +                                       text(body: [x]), +                                       text(body: [+]), +                                       math.lr(body: ({ text(body: [|]), +                                                        text(body: [y]), +                                                        text(body: [|]) })), +                                       text(body: [+]), +                                       math.frac(denom: text(body: [a]), +                                                 num: text(body: [z])), +                                       text(body: [|]) }, +                               numbering: none), +                 parbreak() })
test/out/math/delimited-04.out view
@@ -77,17 +77,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [[]), -                        math.frac(denom: text(body: [b]), -                                  num: text(body: [a])), -                        text(body: []]), -                        text(body: [=]), -                        math.lr(body: ({ text(body: [[]), -                                         math.frac(denom: text(body: [b]), -                                                   num: text(body: [a])), -                                         text(body: []]) })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [[]), +                                       math.frac(denom: text(body: [b]), +                                                 num: text(body: [a])), +                                       text(body: []]), +                                       text(body: [=]), +                                       math.lr(body: ({ text(body: [[]), +                                                        math.frac(denom: text(body: [b]), +                                                                  num: text(body: [a])), +                                                        text(body: []]) })) }, +                               numbering: none), +                 parbreak() })
test/out/math/delimited-05.out view
@@ -61,17 +61,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.lr(body: ({ math.frac(denom: text(body: [b]), -                                                   num: text(body: [a])), -                                         text(body: []]) })), -                        text(body: [=]), -                        text(body: [a]), -                        text(body: [=]), -                        math.lr(body: ({ text(body: [{]), -                                         math.frac(denom: text(body: [b]), -                                                   num: text(body: [a])) })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.lr(body: ({ math.frac(denom: text(body: [b]), +                                                                  num: text(body: [a])), +                                                        text(body: []]) })), +                                       text(body: [=]), +                                       text(body: [a]), +                                       text(body: [=]), +                                       math.lr(body: ({ text(body: [{]), +                                                        math.frac(denom: text(body: [b]), +                                                                  num: text(body: [a])) })) }, +                               numbering: none), +                 parbreak() })
test/out/math/delimited-06.out view
@@ -75,24 +75,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.lr(body: ({ text(body: []]), -                                         math.attach(b: { text(body: [x]), -                                                          text(body: [=]), -                                                          text(body: [1]) }, -                                                     base: text(body: [∑]), -                                                     t: text(body: [n])), -                                         text(body: [x]), -                                         text(body: []]) }), -                                size: 70%), -                        text(body: [<]), -                        math.lr(body: (math.lr(body: ({ [(], -                                                        text(body: [1]), -                                                        text(body: [,]), -                                                        text(body: [2]), -                                                        [)] }))), -                                size: 200%) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.lr(body: ({ text(body: []]), +                                                        math.attach(b: { text(body: [x]), +                                                                         text(body: [=]), +                                                                         text(body: [1]) }, +                                                                    base: text(body: [∑]), +                                                                    t: text(body: [n])), +                                                        text(body: [x]), +                                                        text(body: []]) }), +                                               size: 70%), +                                       text(body: [<]), +                                       math.lr(body: (math.lr(body: ({ [(], +                                                                       text(body: [1]), +                                                                       text(body: [,]), +                                                                       text(body: [2]), +                                                                       [)] }))), +                                               size: 200%) }, +                               numbering: none), +                 parbreak() })
test/out/math/delimited-07.out view
@@ -69,17 +69,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { math.floor(body: math.frac(denom: text(body: [2]), -                                                   num: text(body: [x]))), -                        text(body: [,]), -                        math.ceil(body: math.frac(denom: text(body: [2]), -                                                  num: text(body: [x]))), -                        text(body: [,]), -                        math.abs(body: text(body: [x])), -                        text(body: [,]), -                        math.norm(body: text(body: [x])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.floor(body: math.frac(denom: text(body: [2]), +                                                                  num: text(body: [x]))), +                                       text(body: [,]), +                                       math.ceil(body: math.frac(denom: text(body: [2]), +                                                                 num: text(body: [x]))), +                                       text(body: [,]), +                                       math.abs(body: text(body: [x])), +                                       text(body: [,]), +                                       math.norm(body: text(body: [x])) }, +                               numbering: none), +                 parbreak() })
test/out/math/delimited-08.out view
@@ -71,14 +71,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.lr(body: ({ text(body: text(body: [(]), -                                            fill: rgb(18%,80%,25%,100%)), -                                       math.frac(denom: text(body: [b]), -                                                 num: text(body: [a])), -                                       text(body: text(body: [)]), -                                            fill: rgb(0%,45%,85%,100%)) })), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.lr(body: ({ text(body: text(body: [(]), +                                                           fill: rgb(18%,80%,25%,100%)), +                                                      math.frac(denom: text(body: [b]), +                                                                num: text(body: [a])), +                                                      text(body: text(body: [)]), +                                                           fill: rgb(0%,45%,85%,100%)) })), +                               numbering: none), +                 parbreak() })
test/out/math/frac-00.out view
@@ -56,23 +56,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        text(body: [=]), -                        math.frac(denom: text(body: [2]), -                                  num: text(body: [1])), -                        text(body: [=]), -                        math.frac(denom: { text(body: [a]), -                                           text(body: [h]) }, -                                  num: text(body: [a])), -                        text(body: [=]), -                        math.frac(denom: text(body: [a]), -                                  num: text(body: [a])), -                        text(body: [=]), -                        math.frac(denom: math.frac(denom: text(body: [2]), -                                                   num: text(body: [1])), -                                  num: text(body: [a])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       text(body: [=]), +                                       math.frac(denom: text(body: [2]), +                                                 num: text(body: [1])), +                                       text(body: [=]), +                                       math.frac(denom: { text(body: [a]), +                                                          text(body: [h]) }, +                                                 num: text(body: [a])), +                                       text(body: [=]), +                                       math.frac(denom: text(body: [a]), +                                                 num: text(body: [a])), +                                       text(body: [=]), +                                       math.frac(denom: math.frac(denom: text(body: [2]), +                                                                  num: text(body: [1])), +                                                 num: text(body: [a])) }, +                               numbering: none), +                 parbreak() })
test/out/math/frac-01.out view
@@ -46,9 +46,13 @@         (MGroup            (Just "(")            (Just ")")-           [ MGroup (Just "|") (Just "|") [ Text "x" ]+           [ Text "|"+           , Text "x"+           , Text "|"            , Text "+"-           , MGroup (Just "|") (Just "|") [ Text "y" ]+           , Text "|"+           , Text "y"+           , Text "|"            ])         (Text "2")     , Text "<"@@ -59,23 +63,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.frac(denom: text(body: [2]), -                                  num: { math.lr(body: ({ [|], -                                                          text(body: [x]), -                                                          [|] })), -                                         text(body: [+]), -                                         math.lr(body: ({ [|], -                                                          text(body: [y]), -                                                          [|] })) }), -                        text(body: [<]), -                        math.frac(denom: text(body: [3]), -                                  num: math.lr(body: ({ [[], -                                                        text(body: [1]), +                 math.equation(block: true, +                               body: { math.frac(denom: text(body: [2]), +                                                 num: { text(body: [|]), +                                                        text(body: [x]), +                                                        text(body: [|]),                                                          text(body: [+]), -                                                        text(body: [2]), -                                                        []] }))) }, -                numbering: none), -  parbreak() }+                                                        text(body: [|]), +                                                        text(body: [y]), +                                                        text(body: [|]) }), +                                       text(body: [<]), +                                       math.frac(denom: text(body: [3]), +                                                 num: math.lr(body: ({ [[], +                                                                       text(body: [1]), +                                                                       text(body: [+]), +                                                                       text(body: [2]), +                                                                       []] }))) }, +                               numbering: none), +                 parbreak() })
test/out/math/frac-02.out view
@@ -80,22 +80,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        text(body: [=]), -                        math.frac(denom: { text(body: [2]), -                                           text(body: [a]) }, -                                  num: { text(body: [−]), -                                         text(body: [b]), -                                         text(body: [±]), -                                         math.sqrt(radicand: { math.attach(b: none, -                                                                           base: text(body: [b]), -                                                                           t: text(body: [2])), -                                                               text(body: [−]), -                                                               text(body: [4]), -                                                               text(body: [a]), -                                                               text(body: [c]) }) }) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       text(body: [=]), +                                       math.frac(denom: { text(body: [2]), +                                                          text(body: [a]) }, +                                                 num: { text(body: [−]), +                                                        text(body: [b]), +                                                        text(body: [±]), +                                                        math.sqrt(radicand: { math.attach(b: none, +                                                                                          base: text(body: [b]), +                                                                                          t: text(body: [2])), +                                                                              text(body: [−]), +                                                                              text(body: [4]), +                                                                              text(body: [a]), +                                                                              text(body: [c]) }) }) }, +                               numbering: none), +                 parbreak() })
test/out/math/frac-03.out view
@@ -64,10 +64,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.binom(lower: text(body: [□]), -                                 upper: text(body: [○])), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.binom(lower: text(body: [□]), +                                                upper: text(body: [○])), +                               numbering: none), +                 parbreak() })
test/out/math/frac-05.out view
@@ -54,19 +54,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.frac(denom: text(body: [3]), -                                  num: math.frac(denom: text(body: [2]), -                                                 num: text(body: [1]))), -                        text(body: [=]), -                        math.frac(denom: text(body: [3]), -                                  num: math.frac(denom: text(body: [2]), -                                                 num: text(body: [1]))), -                        text(body: [=]), -                        math.frac(denom: math.frac(denom: text(body: [3]), -                                                   num: text(body: [2])), -                                  num: text(body: [1])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.frac(denom: text(body: [3]), +                                                 num: math.frac(denom: text(body: [2]), +                                                                num: text(body: [1]))), +                                       text(body: [=]), +                                       math.frac(denom: text(body: [3]), +                                                 num: math.frac(denom: text(body: [2]), +                                                                num: text(body: [1]))), +                                       text(body: [=]), +                                       math.frac(denom: math.frac(denom: text(body: [3]), +                                                                  num: text(body: [2])), +                                                 num: text(body: [1])) }, +                               numbering: none), +                 parbreak() })
test/out/math/frac-06.out view
@@ -61,11 +61,22 @@         (Text "2")     , Text ","     , Text " foo"+    , Code+        "test/typ/math/frac-06.typ"+        ( line 3 , column 36 )+        (FieldAccess+           (Ident (Identifier "l"))+           (FieldAccess+              (Ident (Identifier "double")) (Ident (Identifier "bracket"))))+    , Text "x"     , MFrac-        (MGroup-           (Just "[")-           (Just "]")-           [ MGroup (Just "|") (Just "|") [ Text "x" ] ])+        (Code+           "test/typ/math/frac-06.typ"+           ( line 3 , column 39 )+           (FieldAccess+              (Ident (Identifier "r"))+              (FieldAccess+                 (Ident (Identifier "double")) (Ident (Identifier "bracket")))))         (Text "2")     , HardBreak     , MFrac (Text "1.2") (Text "3.7")@@ -120,104 +131,102 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.frac(denom: math.attach(b: text(body: [2]), -                                                     base: text(body: [b]), -                                                     t: none), -                                  num: math.attach(b: text(body: [1]), -                                                   base: text(body: [a]), -                                                   t: none)), -                        text(body: [,]), -                        math.frac(denom: { text(body: [f]), -                                           math.lr(body: ({ [(], -                                                            text(body: [x]), -                                                            [)] })) }, -                                  num: text(body: [1])), -                        text(body: [,]), -                        math.frac(denom: text(body: [2]), -                                  num: { text(body: [ζ]), -                                         text(body: [(]), -                                         text(body: [x]), -                                         text(body: [)]) }), -                        text(body: [,]), -                        text(body: [ foo]), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [[], -                                                        math.lr(body: ({ [|], -                                                                         text(body: [x]), -                                                                         [|] })), -                                                        []] }))), -                        linebreak(), -                        math.frac(denom: text(body: [3.7]), -                                  num: text(body: [1.2])), -                        text(body: [,]), -                        math.attach(b: none, -                                    base: text(body: [2.3]), -                                    t: text(body: [3.4])), -                        linebreak(), -                        text(body: [🏳]), -                        text(body: [️]), -                        text(body: [‍]), -                        text(body: [🌈]), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [[], -                                                        text(body: [x]), -                                                        []] }))), -                        text(body: [,]), -                        text(body: [f]), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [[], -                                                        text(body: [x]), -                                                        []] }))), -                        text(body: [,]), -                        text(body: [φ]), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [[], -                                                        text(body: [x]), -                                                        []] }))), -                        text(body: [,]), -                        text(body: [🏳]), -                        text(body: [️]), -                        text(body: [‍]), -                        text(body: [🌈]), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [[], -                                                        text(body: [x]), -                                                        []] }))), -                        linebreak(), -                        text(body: [+]), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [[], -                                                        text(body: [x]), -                                                        []] }))), -                        text(body: [,]), -                        math.frac(denom: text(body: [2]), -                                  num: { text(body: [1]), -                                         math.lr(body: ({ [(], -                                                          text(body: [x]), -                                                          [)] })) }), -                        text(body: [,]), -                        text(body: [2]), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [[], +                 math.equation(block: true, +                               body: { math.frac(denom: math.attach(b: text(body: [2]), +                                                                    base: text(body: [b]), +                                                                    t: none), +                                                 num: math.attach(b: text(body: [1]), +                                                                  base: text(body: [a]), +                                                                  t: none)), +                                       text(body: [,]), +                                       math.frac(denom: { text(body: [f]), +                                                          math.lr(body: ({ [(], +                                                                           text(body: [x]), +                                                                           [)] })) }, +                                                 num: text(body: [1])), +                                       text(body: [,]), +                                       math.frac(denom: text(body: [2]), +                                                 num: { text(body: [ζ]), +                                                        text(body: [(]),                                                          text(body: [x]), -                                                        []] }))), -                        linebreak(), -                        math.lr(body: ({ [(], -                                         text(body: [a]), -                                         [)] })), -                        math.frac(denom: text(body: [2]), -                                  num: text(body: [b])), -                        text(body: [,]), -                        text(body: [b]), -                        math.lr(body: ({ [(], -                                         text(body: [a]), -                                         [)] })), -                        math.frac(denom: text(body: [2]), -                                  num: math.lr(body: ({ [[], -                                                        text(body: [b]), -                                                        []] }))) }, -                numbering: none), -  parbreak() }+                                                        text(body: [)]) }), +                                       text(body: [,]), +                                       text(body: [ foo]), +                                       text(body: [⟦]), +                                       text(body: [x]), +                                       math.frac(denom: text(body: [2]), +                                                 num: text(body: [⟧])), +                                       linebreak(), +                                       math.frac(denom: text(body: [3.7]), +                                                 num: text(body: [1.2])), +                                       text(body: [,]), +                                       math.attach(b: none, +                                                   base: text(body: [2.3]), +                                                   t: text(body: [3.4])), +                                       linebreak(), +                                       text(body: [🏳]), +                                       text(body: [️]), +                                       text(body: [‍]), +                                       text(body: [🌈]), +                                       math.frac(denom: text(body: [2]), +                                                 num: math.lr(body: ({ [[], +                                                                       text(body: [x]), +                                                                       []] }))), +                                       text(body: [,]), +                                       text(body: [f]), +                                       math.frac(denom: text(body: [2]), +                                                 num: math.lr(body: ({ [[], +                                                                       text(body: [x]), +                                                                       []] }))), +                                       text(body: [,]), +                                       text(body: [φ]), +                                       math.frac(denom: text(body: [2]), +                                                 num: math.lr(body: ({ [[], +                                                                       text(body: [x]), +                                                                       []] }))), +                                       text(body: [,]), +                                       text(body: [🏳]), +                                       text(body: [️]), +                                       text(body: [‍]), +                                       text(body: [🌈]), +                                       math.frac(denom: text(body: [2]), +                                                 num: math.lr(body: ({ [[], +                                                                       text(body: [x]), +                                                                       []] }))), +                                       linebreak(), +                                       text(body: [+]), +                                       math.frac(denom: text(body: [2]), +                                                 num: math.lr(body: ({ [[], +                                                                       text(body: [x]), +                                                                       []] }))), +                                       text(body: [,]), +                                       math.frac(denom: text(body: [2]), +                                                 num: { text(body: [1]), +                                                        math.lr(body: ({ [(], +                                                                         text(body: [x]), +                                                                         [)] })) }), +                                       text(body: [,]), +                                       text(body: [2]), +                                       math.frac(denom: text(body: [2]), +                                                 num: math.lr(body: ({ [[], +                                                                       text(body: [x]), +                                                                       []] }))), +                                       linebreak(), +                                       math.lr(body: ({ [(], +                                                        text(body: [a]), +                                                        [)] })), +                                       math.frac(denom: text(body: [2]), +                                                 num: text(body: [b])), +                                       text(body: [,]), +                                       text(body: [b]), +                                       math.lr(body: ({ [(], +                                                        text(body: [a]), +                                                        [)] })), +                                       math.frac(denom: text(body: [2]), +                                                 num: math.lr(body: ({ [[], +                                                                       text(body: [b]), +                                                                       []] }))) }, +                               numbering: none), +                 parbreak() })
test/out/math/matrix-00.out view
@@ -121,37 +121,37 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: false, -                body: { math.mat(rows: ()), -                        text(body: [⋅]), -                        math.mat(rows: (({  }))), -                        text(body: [⋅]), -                        math.mat(rows: ((text(body: [1]), -                                         text(body: [2])))), -                        text(body: [⋅]), -                        math.mat(rows: ((text(body: [1]), -                                         text(body: [2])))), -                        linebreak(), -                        math.mat(rows: ((text(body: [1])), -                                        (text(body: [2])))), -                        text(body: [⋅]), -                        math.mat(rows: ((text(body: [1]), -                                         text(body: [2])), -                                        (text(body: [3]), -                                         text(body: [4])))), -                        text(body: [⋅]), -                        math.mat(rows: (({ text(body: [1]), -                                           text(body: [+]), -                                           math.alignpoint(), -                                           text(body: [2]) }, -                                         math.frac(denom: text(body: [2]), -                                                   num: text(body: [1]))), -                                        ({ math.alignpoint(), -                                           text(body: [3]) }, -                                         text(body: [4])))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { math.mat(rows: ()), +                                       text(body: [⋅]), +                                       math.mat(rows: (({  }))), +                                       text(body: [⋅]), +                                       math.mat(rows: ((text(body: [1]), +                                                        text(body: [2])))), +                                       text(body: [⋅]), +                                       math.mat(rows: ((text(body: [1]), +                                                        text(body: [2])))), +                                       linebreak(), +                                       math.mat(rows: ((text(body: [1])), +                                                       (text(body: [2])))), +                                       text(body: [⋅]), +                                       math.mat(rows: ((text(body: [1]), +                                                        text(body: [2])), +                                                       (text(body: [3]), +                                                        text(body: [4])))), +                                       text(body: [⋅]), +                                       math.mat(rows: (({ text(body: [1]), +                                                          text(body: [+]), +                                                          math.alignpoint(), +                                                          text(body: [2]) }, +                                                        math.frac(denom: text(body: [2]), +                                                                  num: text(body: [1]))), +                                                       ({ math.alignpoint(), +                                                          text(body: [3]) }, +                                                        text(body: [4])))) }, +                               numbering: none), +                 parbreak() })
test/out/math/matrix-01.out view
@@ -96,24 +96,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: ((text(body: [1]), -                                       text(body: [2]), -                                       text(body: […]), -                                       text(body: [10])), -                                      (text(body: [2]), -                                       text(body: [2]), -                                       text(body: […]), -                                       text(body: [10])), -                                      (text(body: [⋮]), -                                       text(body: [⋮]), -                                       text(body: [⋱]), -                                       text(body: [⋮])), -                                      (text(body: [10]), -                                       text(body: [10]), -                                       text(body: […]), -                                       text(body: [10])))), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.mat(rows: ((text(body: [1]), +                                                      text(body: [2]), +                                                      text(body: […]), +                                                      text(body: [10])), +                                                     (text(body: [2]), +                                                      text(body: [2]), +                                                      text(body: […]), +                                                      text(body: [10])), +                                                     (text(body: [⋮]), +                                                      text(body: [⋮]), +                                                      text(body: [⋱]), +                                                      text(body: [⋮])), +                                                     (text(body: [10]), +                                                      text(body: [10]), +                                                      text(body: […]), +                                                      text(body: [10])))), +                               numbering: none), +                 parbreak() })
test/out/math/matrix-02.out view
@@ -81,24 +81,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: ((text(body: [a]), -                                       math.attach(b: none, -                                                   base: text(body: [b]), -                                                   t: text(body: [2]))), -                                      ({ math.attach(b: { text(body: [x]), -                                                          linebreak(), -                                                          text(body: [y]) }, -                                                     base: text(body: [∑]), -                                                     t: none), -                                         text(body: [x]) }, -                                       math.attach(b: none, -                                                   base: text(body: [a]), -                                                   t: math.frac(denom: text(body: [2]), -                                                                num: text(body: [1])))), -                                      (text(body: [ζ]), -                                       text(body: [α])))), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.mat(rows: ((text(body: [a]), +                                                      math.attach(b: none, +                                                                  base: text(body: [b]), +                                                                  t: text(body: [2]))), +                                                     ({ math.attach(b: { text(body: [x]), +                                                                         linebreak(), +                                                                         text(body: [y]) }, +                                                                    base: text(body: [∑]), +                                                                    t: none), +                                                        text(body: [x]) }, +                                                      math.attach(b: none, +                                                                  base: text(body: [a]), +                                                                  t: math.frac(denom: text(body: [2]), +                                                                               num: text(body: [1])))), +                                                     (text(body: [ζ]), +                                                      text(body: [α])))), +                               numbering: none), +                 parbreak() })
test/out/math/matrix-03.out view
@@ -76,26 +76,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: ((text(body: [1]), -                                       text(body: [2])), -                                      (text(body: [3]), -                                       text(body: [4])))), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.mat(rows: ((text(body: [1]), +                                                      text(body: [2])), +                                                     (text(body: [3]), +                                                      text(body: [4])))), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [a]), -                        text(body: [+]), -                        math.mat(rows: ((text(body: [1]), -                                         text(body: [2])), -                                        (text(body: [3]), -                                         text(body: [4])))), -                        text(body: [+]), -                        text(body: [b]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       math.mat(rows: ((text(body: [1]), +                                                        text(body: [2])), +                                                       (text(body: [3]), +                                                        text(body: [4])))), +                                       text(body: [+]), +                                       text(body: [b]) }, +                               numbering: none), +                 parbreak() })
test/out/math/matrix-04.out view
@@ -198,52 +198,52 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1]), -                                                       text(body: [2])))), -                                numbering: none), -                  math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1]), -                                                       text(body: [2])))), -                                numbering: none), -                  math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1]), -                                                       text(body: [2])))), -                                numbering: none), -                  math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1])), -                                                      (text(body: [2])))), -                                numbering: none), -                  math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1])), -                                                      (text(body: [2])))), -                                numbering: none), -                  math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1])), -                                                      (text(body: [2])))), -                                numbering: none), -                  math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1]), -                                                       text(body: [2])), -                                                      (text(body: [3]), -                                                       text(body: [4])))), -                                numbering: none), -                  math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1]), -                                                       text(body: [2])), -                                                      (text(body: [3]), -                                                       text(body: [4])))), -                                numbering: none), -                  math.equation(block: true, -                                body: math.mat(rows: ((text(body: [1]), -                                                       text(body: [2])), -                                                      (text(body: [3]), -                                                       text(body: [4])))), -                                numbering: none)), -       columns: 3, -       gutter: 10.0pt), -  parbreak() }+                 grid(children: (math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1]), +                                                                      text(body: [2])))), +                                               numbering: none), +                                 math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1]), +                                                                      text(body: [2])))), +                                               numbering: none), +                                 math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1]), +                                                                      text(body: [2])))), +                                               numbering: none), +                                 math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1])), +                                                                     (text(body: [2])))), +                                               numbering: none), +                                 math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1])), +                                                                     (text(body: [2])))), +                                               numbering: none), +                                 math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1])), +                                                                     (text(body: [2])))), +                                               numbering: none), +                                 math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1]), +                                                                      text(body: [2])), +                                                                     (text(body: [3]), +                                                                      text(body: [4])))), +                                               numbering: none), +                                 math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1]), +                                                                      text(body: [2])), +                                                                     (text(body: [3]), +                                                                      text(body: [4])))), +                                               numbering: none), +                                 math.equation(block: true, +                                               body: math.mat(rows: ((text(body: [1]), +                                                                      text(body: [2])), +                                                                     (text(body: [3]), +                                                                      text(body: [4])))), +                                               numbering: none)), +                      columns: 3, +                      gutter: 10.0pt), +                 parbreak() })
test/out/math/matrix-alignment-00.out view
@@ -73,23 +73,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.vec(children: ({ text(body: [ a ]), -                                            math.alignpoint(), -                                            text(body: [ a a a ]), -                                            math.alignpoint(), -                                            text(body: [ a a]) }, -                                          { text(body: [ a a ]), -                                            math.alignpoint(), -                                            text(body: [ a a ]), -                                            math.alignpoint(), -                                            text(body: [ a]) }, -                                          { text(body: [ a a a ]), -                                            math.alignpoint(), -                                            text(body: [ a ]), -                                            math.alignpoint(), -                                            text(body: [ a a a]) })), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.vec(children: ({ text(body: [ a ]), +                                                           math.alignpoint(), +                                                           text(body: [ a a a ]), +                                                           math.alignpoint(), +                                                           text(body: [ a a]) }, +                                                         { text(body: [ a a ]), +                                                           math.alignpoint(), +                                                           text(body: [ a a ]), +                                                           math.alignpoint(), +                                                           text(body: [ a]) }, +                                                         { text(body: [ a a a ]), +                                                           math.alignpoint(), +                                                           text(body: [ a ]), +                                                           math.alignpoint(), +                                                           text(body: [ a a a]) })), +                               numbering: none), +                 parbreak() })
test/out/math/matrix-alignment-01.out view
@@ -84,23 +84,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ text(body: [ a ]), -                                         math.alignpoint(), -                                         text(body: [ a a a ]), -                                         math.alignpoint(), -                                         text(body: [ a a]) }), -                                      ({ text(body: [ a a ]), -                                         math.alignpoint(), -                                         text(body: [ a a ]), -                                         math.alignpoint(), -                                         text(body: [ a]) }), -                                      ({ text(body: [ a a a ]), -                                         math.alignpoint(), -                                         text(body: [ a ]), -                                         math.alignpoint(), -                                         text(body: [ a a a]) }))), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.mat(rows: (({ text(body: [ a ]), +                                                        math.alignpoint(), +                                                        text(body: [ a a a ]), +                                                        math.alignpoint(), +                                                        text(body: [ a a]) }), +                                                     ({ text(body: [ a a ]), +                                                        math.alignpoint(), +                                                        text(body: [ a a ]), +                                                        math.alignpoint(), +                                                        text(body: [ a]) }), +                                                     ({ text(body: [ a a a ]), +                                                        math.alignpoint(), +                                                        text(body: [ a ]), +                                                        math.alignpoint(), +                                                        text(body: [ a a a]) }))), +                               numbering: none), +                 parbreak() })
test/out/math/matrix-alignment-02.out view
@@ -57,17 +57,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: ((text(body: [ a]), -                                       text(body: [ a a a]), -                                       text(body: [ a a])), -                                      (text(body: [ a a]), -                                       text(body: [ a a]), -                                       text(body: [ a])), -                                      (text(body: [ a a a]), -                                       text(body: [ a]), -                                       text(body: [ a a a])))), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.mat(rows: ((text(body: [ a]), +                                                      text(body: [ a a a]), +                                                      text(body: [ a a])), +                                                     (text(body: [ a a]), +                                                      text(body: [ a a]), +                                                      text(body: [ a])), +                                                     (text(body: [ a a a]), +                                                      text(body: [ a]), +                                                      text(body: [ a a a])))), +                               numbering: none), +                 parbreak() })
test/out/math/matrix-alignment-03.out view
@@ -66,26 +66,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ math.alignpoint(), -                                         text(body: [a]) }, -                                       { math.alignpoint(), -                                         text(body: [a a a]) }, -                                       { math.alignpoint(), -                                         text(body: [a a]) }), -                                      ({ math.alignpoint(), -                                         text(body: [a a]) }, -                                       { math.alignpoint(), -                                         text(body: [a a]) }, -                                       { math.alignpoint(), -                                         text(body: [a]) }), -                                      ({ math.alignpoint(), -                                         text(body: [a a a]) }, -                                       { math.alignpoint(), -                                         text(body: [a]) }, -                                       { math.alignpoint(), -                                         text(body: [a a a]) }))), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.mat(rows: (({ math.alignpoint(), +                                                        text(body: [a]) }, +                                                      { math.alignpoint(), +                                                        text(body: [a a a]) }, +                                                      { math.alignpoint(), +                                                        text(body: [a a]) }), +                                                     ({ math.alignpoint(), +                                                        text(body: [a a]) }, +                                                      { math.alignpoint(), +                                                        text(body: [a a]) }, +                                                      { math.alignpoint(), +                                                        text(body: [a]) }), +                                                     ({ math.alignpoint(), +                                                        text(body: [a a a]) }, +                                                      { math.alignpoint(), +                                                        text(body: [a]) }, +                                                      { math.alignpoint(), +                                                        text(body: [a a a]) }))), +                               numbering: none), +                 parbreak() })
test/out/math/matrix-alignment-04.out view
@@ -66,26 +66,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ text(body: [ a]), -                                         math.alignpoint() }, -                                       { text(body: [ a a a]), -                                         math.alignpoint() }, -                                       { text(body: [ a a]), -                                         math.alignpoint() }), -                                      ({ text(body: [ a a]), -                                         math.alignpoint() }, -                                       { text(body: [ a a]), -                                         math.alignpoint() }, -                                       { text(body: [ a]), -                                         math.alignpoint() }), -                                      ({ text(body: [ a a a]), -                                         math.alignpoint() }, -                                       { text(body: [ a]), -                                         math.alignpoint() }, -                                       { text(body: [ a a a]), -                                         math.alignpoint() }))), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.mat(rows: (({ text(body: [ a]), +                                                        math.alignpoint() }, +                                                      { text(body: [ a a a]), +                                                        math.alignpoint() }, +                                                      { text(body: [ a a]), +                                                        math.alignpoint() }), +                                                     ({ text(body: [ a a]), +                                                        math.alignpoint() }, +                                                      { text(body: [ a a]), +                                                        math.alignpoint() }, +                                                      { text(body: [ a]), +                                                        math.alignpoint() }), +                                                     ({ text(body: [ a a a]), +                                                        math.alignpoint() }, +                                                      { text(body: [ a]), +                                                        math.alignpoint() }, +                                                      { text(body: [ a a a]), +                                                        math.alignpoint() }))), +                               numbering: none), +                 parbreak() })
test/out/math/matrix-alignment-05.out view
@@ -156,68 +156,68 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ math.alignpoint(), -                                         text(body: [a]), -                                         text(body: [+]), -                                         text(body: [b]) }, -                                       text(body: [c])), -                                      ({ math.alignpoint(), -                                         text(body: [d]) }, -                                       text(body: [e])))), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.mat(rows: (({ math.alignpoint(), +                                                        text(body: [a]), +                                                        text(body: [+]), +                                                        text(body: [b]) }, +                                                      text(body: [c])), +                                                     ({ math.alignpoint(), +                                                        text(body: [d]) }, +                                                      text(body: [e])))), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ math.alignpoint(), -                                         text(body: [a]), -                                         text(body: [+]), -                                         text(body: [b]), -                                         math.alignpoint() }, -                                       text(body: [c])), -                                      ({ math.alignpoint(), -                                         text(body: [d]), -                                         math.alignpoint() }, -                                       text(body: [e])))), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.mat(rows: (({ math.alignpoint(), +                                                        text(body: [a]), +                                                        text(body: [+]), +                                                        text(body: [b]), +                                                        math.alignpoint() }, +                                                      text(body: [c])), +                                                     ({ math.alignpoint(), +                                                        text(body: [d]), +                                                        math.alignpoint() }, +                                                      text(body: [e])))), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ math.alignpoint(), -                                         math.alignpoint(), -                                         math.alignpoint(), -                                         text(body: [a]), -                                         text(body: [+]), -                                         text(body: [b]) }, -                                       text(body: [c])), -                                      ({ math.alignpoint(), -                                         math.alignpoint(), -                                         math.alignpoint(), -                                         text(body: [d]) }, -                                       text(body: [e])))), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.mat(rows: (({ math.alignpoint(), +                                                        math.alignpoint(), +                                                        math.alignpoint(), +                                                        text(body: [a]), +                                                        text(body: [+]), +                                                        text(body: [b]) }, +                                                      text(body: [c])), +                                                     ({ math.alignpoint(), +                                                        math.alignpoint(), +                                                        math.alignpoint(), +                                                        text(body: [d]) }, +                                                      text(body: [e])))), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ text(body: [.]), -                                         math.alignpoint(), -                                         text(body: [a]), -                                         text(body: [+]), -                                         text(body: [b]), -                                         math.alignpoint(), -                                         text(body: [.]) }, -                                       text(body: [c])), -                                      ({ text(body: […]), -                                         text(body: [.]), -                                         text(body: [.]), -                                         math.alignpoint(), -                                         text(body: [d]), -                                         math.alignpoint(), -                                         text(body: […]), -                                         text(body: [.]), -                                         text(body: [.]) }, -                                       text(body: [e])))), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.mat(rows: (({ text(body: [.]), +                                                        math.alignpoint(), +                                                        text(body: [a]), +                                                        text(body: [+]), +                                                        text(body: [b]), +                                                        math.alignpoint(), +                                                        text(body: [.]) }, +                                                      text(body: [c])), +                                                     ({ text(body: […]), +                                                        text(body: [.]), +                                                        text(body: [.]), +                                                        math.alignpoint(), +                                                        text(body: [d]), +                                                        math.alignpoint(), +                                                        text(body: […]), +                                                        text(body: [.]), +                                                        text(body: [.]) }, +                                                      text(body: [e])))), +                               numbering: none), +                 parbreak() })
test/out/math/matrix-alignment-06.out view
@@ -239,83 +239,83 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ text(body: [−]), -                                         text(body: [1]) }, -                                       text(body: [1]), -                                       text(body: [1])), -                                      (text(body: [1]), -                                       { text(body: [−]), -                                         text(body: [1]) }, -                                       text(body: [1])), -                                      (text(body: [1]), -                                       text(body: [1]), -                                       { text(body: [−]), -                                         text(body: [1]) }))), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.mat(rows: (({ text(body: [−]), +                                                        text(body: [1]) }, +                                                      text(body: [1]), +                                                      text(body: [1])), +                                                     (text(body: [1]), +                                                      { text(body: [−]), +                                                        text(body: [1]) }, +                                                      text(body: [1])), +                                                     (text(body: [1]), +                                                      text(body: [1]), +                                                      { text(body: [−]), +                                                        text(body: [1]) }))), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ text(body: [−]), -                                         text(body: [1]), -                                         math.alignpoint() }, -                                       { text(body: [1]), -                                         math.alignpoint() }, -                                       { text(body: [1]), -                                         math.alignpoint() }), -                                      ({ text(body: [1]), -                                         math.alignpoint() }, -                                       { text(body: [−]), -                                         text(body: [1]), -                                         math.alignpoint() }, -                                       { text(body: [1]), -                                         math.alignpoint() }), -                                      ({ text(body: [1]), -                                         math.alignpoint() }, -                                       { text(body: [1]), -                                         math.alignpoint() }, -                                       { text(body: [−]), -                                         text(body: [1]), -                                         math.alignpoint() }))), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.mat(rows: (({ text(body: [−]), +                                                        text(body: [1]), +                                                        math.alignpoint() }, +                                                      { text(body: [1]), +                                                        math.alignpoint() }, +                                                      { text(body: [1]), +                                                        math.alignpoint() }), +                                                     ({ text(body: [1]), +                                                        math.alignpoint() }, +                                                      { text(body: [−]), +                                                        text(body: [1]), +                                                        math.alignpoint() }, +                                                      { text(body: [1]), +                                                        math.alignpoint() }), +                                                     ({ text(body: [1]), +                                                        math.alignpoint() }, +                                                      { text(body: [1]), +                                                        math.alignpoint() }, +                                                      { text(body: [−]), +                                                        text(body: [1]), +                                                        math.alignpoint() }))), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ text(body: [−]), -                                         text(body: [1]), -                                         math.alignpoint() }, -                                       { text(body: [1]), -                                         math.alignpoint() }, -                                       { text(body: [1]), -                                         math.alignpoint() }), -                                      (text(body: [1]), -                                       { text(body: [−]), -                                         text(body: [1]) }, -                                       text(body: [1])), -                                      (text(body: [1]), -                                       text(body: [1]), -                                       { text(body: [−]), -                                         text(body: [1]) }))), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.mat(rows: (({ text(body: [−]), +                                                        text(body: [1]), +                                                        math.alignpoint() }, +                                                      { text(body: [1]), +                                                        math.alignpoint() }, +                                                      { text(body: [1]), +                                                        math.alignpoint() }), +                                                     (text(body: [1]), +                                                      { text(body: [−]), +                                                        text(body: [1]) }, +                                                      text(body: [1])), +                                                     (text(body: [1]), +                                                      text(body: [1]), +                                                      { text(body: [−]), +                                                        text(body: [1]) }))), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.mat(rows: (({ math.alignpoint(), -                                         text(body: [−]), -                                         text(body: [1]) }, -                                       { math.alignpoint(), -                                         text(body: [1]) }, -                                       { math.alignpoint(), -                                         text(body: [1]) }), -                                      (text(body: [1]), -                                       { text(body: [−]), -                                         text(body: [1]) }, -                                       text(body: [1])), -                                      (text(body: [1]), -                                       text(body: [1]), -                                       { text(body: [−]), -                                         text(body: [1]) }))), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.mat(rows: (({ math.alignpoint(), +                                                        text(body: [−]), +                                                        text(body: [1]) }, +                                                      { math.alignpoint(), +                                                        text(body: [1]) }, +                                                      { math.alignpoint(), +                                                        text(body: [1]) }), +                                                     (text(body: [1]), +                                                      { text(body: [−]), +                                                        text(body: [1]) }, +                                                      text(body: [1])), +                                                     (text(body: [1]), +                                                      text(body: [1]), +                                                      { text(body: [−]), +                                                        text(body: [1]) }))), +                               numbering: none), +                 parbreak() })
test/out/math/multiline-00.out view
@@ -73,29 +73,29 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [x]), -                        text(body: [+]), -                        text(body: [y]), -                        linebreak(), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [x]), -                        text(body: [+]), -                        text(body: [2]), -                        text(body: [z]), -                        linebreak(), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [∑]), -                        text(body: [x]), -                        text(body: [⋅]), -                        text(body: [2]), -                        text(body: [z]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [x]), +                                       text(body: [+]), +                                       text(body: [y]), +                                       linebreak(), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [x]), +                                       text(body: [+]), +                                       text(body: [2]), +                                       text(body: [z]), +                                       linebreak(), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [∑]), +                                       text(body: [x]), +                                       text(body: [⋅]), +                                       text(body: [2]), +                                       text(body: [z]) }, +                               numbering: none), +                 parbreak() })
test/out/math/multiline-01.out view
@@ -77,36 +77,36 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        text(body: [+]), -                        text(body: [1]), -                        math.alignpoint(), -                        text(body: [=]), -                        math.attach(b: none, -                                    base: text(body: [a]), -                                    t: text(body: [2])), -                        text(body: [+]), -                        math.attach(b: none, -                                    base: text(body: [b]), -                                    t: text(body: [2])), -                        linebreak(), -                        text(body: [y]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [a]), -                        text(body: [+]), -                        math.attach(b: none, -                                    base: text(body: [b]), -                                    t: text(body: [2])), -                        linebreak(), -                        text(body: [z]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [α]), -                        text(body: [⋅]), -                        text(body: [β]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       text(body: [+]), +                                       text(body: [1]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       math.attach(b: none, +                                                   base: text(body: [a]), +                                                   t: text(body: [2])), +                                       text(body: [+]), +                                       math.attach(b: none, +                                                   base: text(body: [b]), +                                                   t: text(body: [2])), +                                       linebreak(), +                                       text(body: [y]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [a]), +                                       text(body: [+]), +                                       math.attach(b: none, +                                                   base: text(body: [b]), +                                                   t: text(body: [2])), +                                       linebreak(), +                                       text(body: [z]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [α]), +                                       text(body: [⋅]), +                                       text(body: [β]) }, +                               numbering: none), +                 parbreak() })
test/out/math/multiline-02.out view
@@ -65,27 +65,27 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [a]), -                        text(body: [+]), -                        text(body: [b]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [2]), -                        text(body: [+]), -                        text(body: [3]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [5]), -                        linebreak(), -                        text(body: [b]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [c]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [3]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       text(body: [b]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [2]), +                                       text(body: [+]), +                                       text(body: [3]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [5]), +                                       linebreak(), +                                       text(body: [b]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [c]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [3]) }, +                               numbering: none), +                 parbreak() })
test/out/math/multiline-03.out view
@@ -69,22 +69,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [f]), -                        text(body: [≔]), -                        math.cases(children: ({ text(body: [1]), -                                                text(body: [+]), -                                                text(body: [2]), -                                                math.alignpoint(), -                                                text(body: [iff ]), -                                                math.alignpoint(), -                                                text(body: [x]) }, -                                              { text(body: [3]), -                                                math.alignpoint(), -                                                text(body: [if ]), -                                                math.alignpoint(), -                                                text(body: [y]) })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [f]), +                                       text(body: [≔]), +                                       math.cases(children: ({ text(body: [1]), +                                                               text(body: [+]), +                                                               text(body: [2]), +                                                               math.alignpoint(), +                                                               text(body: [iff ]), +                                                               math.alignpoint(), +                                                               text(body: [x]) }, +                                                             { text(body: [3]), +                                                               math.alignpoint(), +                                                               text(body: [if ]), +                                                               math.alignpoint(), +                                                               text(body: [y]) })) }, +                               numbering: none), +                 parbreak() })
test/out/math/multiline-04.out view
@@ -59,21 +59,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [ abc ]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [c]), -                        linebreak(), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [d]), -                        text(body: [+]), -                        text(body: [1]), -                        linebreak(), -                        text(body: [=]), -                        text(body: [x]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [ abc ]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [c]), +                                       linebreak(), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [d]), +                                       text(body: [+]), +                                       text(body: [1]), +                                       linebreak(), +                                       text(body: [=]), +                                       text(body: [x]) }, +                               numbering: none), +                 parbreak() })
test/out/math/multiline-05.out view
@@ -89,28 +89,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: { text(body: [n]), -                                         text(body: [∈]), -                                         text(body: [ℕ]), -                                         linebreak(), -                                         text(body: [n]), -                                         text(body: [≤]), -                                         text(body: [5]) }, -                                    base: text(body: [∑]), -                                    t: none), -                        text(body: [n]), -                        text(body: [=]), -                        math.frac(denom: text(body: [2]), -                                  num: { text(body: [5]), -                                         math.lr(body: ({ [(], -                                                          text(body: [5]), -                                                          text(body: [+]), -                                                          text(body: [1]), -                                                          [)] })) }), -                        text(body: [=]), -                        text(body: [15]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: { text(body: [n]), +                                                        text(body: [∈]), +                                                        text(body: [ℕ]), +                                                        linebreak(), +                                                        text(body: [n]), +                                                        text(body: [≤]), +                                                        text(body: [5]) }, +                                                   base: text(body: [∑]), +                                                   t: none), +                                       text(body: [n]), +                                       text(body: [=]), +                                       math.frac(denom: text(body: [2]), +                                                 num: { text(body: [5]), +                                                        math.lr(body: ({ [(], +                                                                         text(body: [5]), +                                                                         text(body: [+]), +                                                                         text(body: [1]), +                                                                         [)] })) }), +                                       text(body: [=]), +                                       text(body: [15]) }, +                               numbering: none), +                 parbreak() })
test/out/math/multiline-06.out view
@@ -54,14 +54,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [ abc ]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [c]) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [ abc ]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [c]) }, +                               numbering: none), +                 text(body: [ No trailing line break.]), -  parbreak() }+                 parbreak() })
test/out/math/multiline-07.out view
@@ -55,15 +55,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [ abc ]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [c]), -                        linebreak() }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [ abc ]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [c]), +                                       linebreak() }, +                               numbering: none), +                 text(body: [ One trailing line break.]), -  parbreak() }+                 parbreak() })
test/out/math/multiline-08.out view
@@ -62,17 +62,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [ abc ]), -                        math.alignpoint(), -                        text(body: [=]), -                        text(body: [c]), -                        linebreak(), -                        linebreak(), -                        linebreak() }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { text(body: [ abc ]), +                                       math.alignpoint(), +                                       text(body: [=]), +                                       text(body: [c]), +                                       linebreak(), +                                       linebreak(), +                                       linebreak() }, +                               numbering: none), +                 text(body: [ Multiple trailing line breaks.]), -  parbreak() }+                 parbreak() })
test/out/math/numbering-00.out view
@@ -143,47 +143,47 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [We define ]), -  math.equation(block: false, -                body: text(body: [x]), -                numbering: none), -  text(body: [ in preparation of ]), -  ref(supplement: auto, -      target: ), -  text(body: [:+                 parbreak(), +                 text(body: [We define ]), +                 math.equation(block: false, +                               body: text(body: [x]), +                               numbering: none), +                 text(body: [ in preparation of ]), +                 ref(supplement: auto, +                     target: <fib>), +                 text(body: [: ]), -  math.equation(block: true, -                body: { text(body: [ϕ]), -                        text(body: [≔]), -                        math.frac(denom: text(body: [2]), -                                  num: { text(body: [1]), -                                         text(body: [+]), -                                         math.sqrt(radicand: text(body: [5])) }) }, -                numbering: none), -  text(body: [ ]), -  <ratio>, -  parbreak(), -  text(body: [With ]), -  ref(supplement: auto, -      target: ), -  text(body: [, we get+                 math.equation(block: true, +                               body: { text(body: [ϕ]), +                                       text(body: [≔]), +                                       math.frac(denom: text(body: [2]), +                                                 num: { text(body: [1]), +                                                        text(body: [+]), +                                                        math.sqrt(radicand: text(body: [5])) }) }, +                               numbering: none), +                 text(body: [ ]), +                 <ratio>, +                 parbreak(), +                 text(body: [With ]), +                 ref(supplement: auto, +                     target: <ratio>), +                 text(body: [, we get ]), -  math.equation(block: true, -                body: { math.attach(b: text(body: [n]), -                                    base: text(body: [F]), -                                    t: none), -                        text(body: [=]), -                        math.round(body: { math.frac(denom: math.sqrt(radicand: text(body: [5])), -                                                     num: text(body: [1])), -                                           math.attach(b: none, -                                                       base: text(body: [ϕ]), -                                                       t: text(body: [n])) }) }, -                numbering: none), -  text(body: [ ]), -  <fib>, -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: text(body: [n]), +                                                   base: text(body: [F]), +                                                   t: none), +                                       text(body: [=]), +                                       math.round(body: { math.frac(denom: math.sqrt(radicand: text(body: [5])), +                                                                    num: text(body: [1])), +                                                          math.attach(b: none, +                                                                      base: text(body: [ϕ]), +                                                                      t: text(body: [n])) }) }, +                               numbering: none), +                 text(body: [ ]), +                 <fib>, +                 parbreak() })
test/out/math/op-00.out view
@@ -69,17 +69,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: { text(body: [1]), -                                         text(body: [≤]), -                                         text(body: [n]), -                                         text(body: [≤]), -                                         text(body: [m]) }, -                                    base: math.op(limits: true, -                                                  text: "max"), -                                    t: none), -                        text(body: [n]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: { text(body: [1]), +                                                        text(body: [≤]), +                                                        text(body: [n]), +                                                        text(body: [≤]), +                                                        text(body: [m]) }, +                                                   base: math.op(limits: true, +                                                                 text: "max"), +                                                   t: none), +                                       text(body: [n]) }, +                               numbering: none), +                 parbreak() })
test/out/math/op-01.out view
@@ -81,34 +81,34 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.alignpoint(), -                        math.op(limits: false, -                                text: "sin"), -                        text(body: [x]), -                        text(body: [+]), -                        math.attach(b: text(body: [2]), -                                    base: math.op(limits: false, -                                                  text: "log"), -                                    t: none), -                        text(body: [x]), -                        linebreak(), -                        text(body: [=]), -                        math.alignpoint(), -                        math.op(limits: false, -                                text: "sin"), -                        text(body: [(]), -                        text(body: [x]), -                        text(body: [)]), -                        text(body: [+]), -                        math.attach(b: text(body: [2]), -                                    base: math.op(limits: false, -                                                  text: "log"), -                                    t: none), -                        math.lr(body: ({ [(], -                                         text(body: [x]), -                                         [)] })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.alignpoint(), +                                       math.op(limits: false, +                                               text: "sin"), +                                       text(body: [x]), +                                       text(body: [+]), +                                       math.attach(b: text(body: [2]), +                                                   base: math.op(limits: false, +                                                                 text: "log"), +                                                   t: none), +                                       text(body: [x]), +                                       linebreak(), +                                       text(body: [=]), +                                       math.alignpoint(), +                                       math.op(limits: false, +                                               text: "sin"), +                                       text(body: [(]), +                                       text(body: [x]), +                                       text(body: [)]), +                                       text(body: [+]), +                                       math.attach(b: text(body: [2]), +                                                   base: math.op(limits: false, +                                                                 text: "log"), +                                                   t: none), +                                       math.lr(body: ({ [(], +                                                        text(body: [x]), +                                                        [)] })) }, +                               numbering: none), +                 parbreak() })
test/out/math/op-02.out view
@@ -108,46 +108,46 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Discuss ], -       font: "New Computer Modern"), -  math.equation(block: false, -                body: { math.attach(b: { text(body: [n], -                                              font: "New Computer Modern"), -                                         text(body: [→], -                                              font: "New Computer Modern"), -                                         text(body: [∞], -                                              font: "New Computer Modern") }, -                                    base: math.op(limits: true, -                                                  text: "lim"), -                                    t: none), -                        math.frac(denom: text(body: [n], -                                              font: "New Computer Modern"), -                                  num: text(body: [1], -                                            font: "New Computer Modern")) }, -                numbering: none), -  text(body: [ now.+                      font: "New Computer Modern"), +                 math.equation(block: false, +                               body: { math.attach(b: { text(body: [n], +                                                             font: "New Computer Modern"), +                                                        text(body: [→], +                                                             font: "New Computer Modern"), +                                                        text(body: [∞], +                                                             font: "New Computer Modern") }, +                                                   base: math.op(limits: true, +                                                                 text: "lim"), +                                                   t: none), +                                       math.frac(denom: text(body: [n], +                                                             font: "New Computer Modern"), +                                                 num: text(body: [1], +                                                           font: "New Computer Modern")) }, +                               numbering: none), +                 text(body: [ now. ], -       font: "New Computer Modern"), -  math.equation(block: true, -                body: { math.attach(b: { text(body: [n], -                                              font: "New Computer Modern"), -                                         text(body: [→], -                                              font: "New Computer Modern"), -                                         text(body: [∞], -                                              font: "New Computer Modern") }, -                                    base: math.op(limits: true, -                                                  text: "lim"), -                                    t: none), -                        math.frac(denom: text(body: [n], -                                              font: "New Computer Modern"), -                                  num: text(body: [1], -                                            font: "New Computer Modern")), -                        text(body: [=], -                             font: "New Computer Modern"), -                        text(body: [0], -                             font: "New Computer Modern") }, -                numbering: none), -  parbreak() }+                      font: "New Computer Modern"), +                 math.equation(block: true, +                               body: { math.attach(b: { text(body: [n], +                                                             font: "New Computer Modern"), +                                                        text(body: [→], +                                                             font: "New Computer Modern"), +                                                        text(body: [∞], +                                                             font: "New Computer Modern") }, +                                                   base: math.op(limits: true, +                                                                 text: "lim"), +                                                   t: none), +                                       math.frac(denom: text(body: [n], +                                                             font: "New Computer Modern"), +                                                 num: text(body: [1], +                                                           font: "New Computer Modern")), +                                       text(body: [=], +                                            font: "New Computer Modern"), +                                       text(body: [0], +                                            font: "New Computer Modern") }, +                               numbering: none), +                 parbreak() })
test/out/math/op-03.out view
@@ -93,23 +93,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: { text(body: [x]), -                                         text(body: [≔]), -                                         text(body: [1]) }, -                                    base: math.op(limits: false, -                                                  text: text(body: [myop])), -                                    t: none), -                        text(body: [x]), -                        linebreak(), -                        math.attach(b: { text(body: [x]), -                                         text(body: [≔]), -                                         text(body: [1]) }, -                                    base: math.op(limits: true, -                                                  text: text(body: [myop])), -                                    t: none), -                        text(body: [x]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: { text(body: [x]), +                                                        text(body: [≔]), +                                                        text(body: [1]) }, +                                                   base: math.op(limits: false, +                                                                 text: text(body: [myop])), +                                                   t: none), +                                       text(body: [x]), +                                       linebreak(), +                                       math.attach(b: { text(body: [x]), +                                                        text(body: [≔]), +                                                        text(body: [1]) }, +                                                   base: math.op(limits: true, +                                                                 text: text(body: [myop])), +                                                   t: none), +                                       text(body: [x]) }, +                               numbering: none), +                 parbreak() })
test/out/math/op-04.out view
@@ -66,13 +66,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: text(body: [x]), -                                    base: math.bold(body: math.op(limits: true, -                                                                  text: text(body: [bold]))), -                                    t: none), -                        text(body: [y]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: text(body: [x]), +                                                   base: math.bold(body: math.op(limits: true, +                                                                                 text: text(body: [bold]))), +                                                   t: none), +                                       text(body: [y]) }, +                               numbering: none), +                 parbreak() })
test/out/math/root-00.out view
@@ -56,15 +56,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [A]), -                        text(body: [=]), -                        math.sqrt(radicand: { text(body: [x]), -                                              text(body: [+]), -                                              text(body: [y]) }), -                        text(body: [=]), -                        text(body: [c]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [A]), +                                       text(body: [=]), +                                       math.sqrt(radicand: { text(body: [x]), +                                                             text(body: [+]), +                                                             text(body: [y]) }), +                                       text(body: [=]), +                                       text(body: [c]) }, +                               numbering: none), +                 parbreak() })
test/out/math/root-01.out view
@@ -117,33 +117,33 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.sqrt(radicand: text(body: [a])), -                        text(body: [ ]), -                        math.sqrt(radicand: text(body: [f])), -                        text(body: [ ]), -                        math.sqrt(radicand: text(body: [q])), -                        text(body: [ ]), -                        math.sqrt(radicand: math.attach(b: none, -                                                        base: text(body: [a]), -                                                        t: text(body: [2]))), -                        linebreak(), -                        math.sqrt(radicand: math.attach(b: text(body: [0]), -                                                        base: text(body: [n]), -                                                        t: none)), -                        text(body: [ ]), -                        math.sqrt(radicand: math.attach(b: none, -                                                        base: text(body: [b]), -                                                        t: {  })), -                        text(body: [ ]), -                        math.sqrt(radicand: math.attach(b: none, -                                                        base: text(body: [b]), -                                                        t: text(body: [2]))), -                        text(body: [ ]), -                        math.sqrt(radicand: math.attach(b: text(body: [1]), -                                                        base: text(body: [q]), -                                                        t: text(body: [2]))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.sqrt(radicand: text(body: [a])), +                                       text(body: [ ]), +                                       math.sqrt(radicand: text(body: [f])), +                                       text(body: [ ]), +                                       math.sqrt(radicand: text(body: [q])), +                                       text(body: [ ]), +                                       math.sqrt(radicand: math.attach(b: none, +                                                                       base: text(body: [a]), +                                                                       t: text(body: [2]))), +                                       linebreak(), +                                       math.sqrt(radicand: math.attach(b: text(body: [0]), +                                                                       base: text(body: [n]), +                                                                       t: none)), +                                       text(body: [ ]), +                                       math.sqrt(radicand: math.attach(b: none, +                                                                       base: text(body: [b]), +                                                                       t: {  })), +                                       text(body: [ ]), +                                       math.sqrt(radicand: math.attach(b: none, +                                                                       base: text(body: [b]), +                                                                       t: text(body: [2]))), +                                       text(body: [ ]), +                                       math.sqrt(radicand: math.attach(b: text(body: [1]), +                                                                       base: text(body: [q]), +                                                                       t: text(body: [2]))) }, +                               numbering: none), +                 parbreak() })
test/out/math/root-02.out view
@@ -91,33 +91,33 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: math.sqrt(radicand: text(body: [x])), -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: math.sqrt(radicand: text(body: [x])), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: false, -                body: math.root(index: text(body: [2]), -                                radicand: text(body: [x])), -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: math.root(index: text(body: [2]), +                                               radicand: text(body: [x])), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: false, -                body: math.root(index: text(body: [3]), -                                radicand: text(body: [x])), -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: math.root(index: text(body: [3]), +                                               radicand: text(body: [x])), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: false, -                body: math.root(index: text(body: [4]), -                                radicand: text(body: [x])), -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: math.root(index: text(body: [4]), +                                               radicand: text(body: [x])), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: false, -                body: math.root(index: text(body: [5]), -                                radicand: text(body: [x])), -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: math.root(index: text(body: [5]), +                                               radicand: text(body: [x])), +                               numbering: none), +                 parbreak() })
test/out/math/root-03.out view
@@ -48,26 +48,61 @@         (FuncCall            (Ident (Identifier "sqrt"))            [ BlockArg-               [ MAttach+               [ Code+                   "test/typ/math/root-03.typ"+                   ( line 3 , column 8 )+                   (FieldAccess+                      (Ident (Identifier "l"))+                      (FieldAccess+                         (Ident (Identifier "double")) (Ident (Identifier "bracket"))))+               , Text "x"+               , MAttach                    Nothing                    (Just (Text "2"))-                   (MGroup-                      (Just "[")-                      (Just "]")-                      [ MGroup (Just "|") (Just "|") [ Text "x" ] ])+                   (Code+                      "test/typ/math/root-03.typ"+                      ( line 3 , column 11 )+                      (FieldAccess+                         (Ident (Identifier "r"))+                         (FieldAccess+                            (Ident (Identifier "double")) (Ident (Identifier "bracket")))))                , Text "+"+               , Code+                   "test/typ/math/root-03.typ"+                   ( line 3 , column 18 )+                   (FieldAccess+                      (Ident (Identifier "l"))+                      (FieldAccess+                         (Ident (Identifier "double")) (Ident (Identifier "bracket"))))+               , Text "y"                , MAttach                    Nothing                    (Just (Text "2"))-                   (MGroup-                      (Just "[")-                      (Just "]")-                      [ MGroup (Just "|") (Just "|") [ Text "y" ] ])+                   (Code+                      "test/typ/math/root-03.typ"+                      ( line 3 , column 21 )+                      (FieldAccess+                         (Ident (Identifier "r"))+                         (FieldAccess+                            (Ident (Identifier "double")) (Ident (Identifier "bracket")))))                ]            ])     , Text "<"-    , MGroup-        (Just "[") (Just "]") [ MGroup (Just "|") (Just "|") [ Text "z" ] ]+    , Code+        "test/typ/math/root-03.typ"+        ( line 3 , column 29 )+        (FieldAccess+           (Ident (Identifier "l"))+           (FieldAccess+              (Ident (Identifier "double")) (Ident (Identifier "bracket"))))+    , Text "z"+    , Code+        "test/typ/math/root-03.typ"+        ( line 3 , column 32 )+        (FieldAccess+           (Ident (Identifier "r"))+           (FieldAccess+              (Ident (Identifier "double")) (Ident (Identifier "bracket"))))     ] , SoftBreak , Equation@@ -131,57 +166,51 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.sqrt(radicand: { math.attach(b: none, -                                                          base: math.lr(body: ({ [[], -                                                                                 math.lr(body: ({ [|], -                                                                                                  text(body: [x]), -                                                                                                  [|] })), -                                                                                 []] })), -                                                          t: text(body: [2])), -                                              text(body: [+]), -                                              math.attach(b: none, -                                                          base: math.lr(body: ({ [[], -                                                                                 math.lr(body: ({ [|], -                                                                                                  text(body: [y]), -                                                                                                  [|] })), -                                                                                 []] })), -                                                          t: text(body: [2])) }), -                        text(body: [<]), -                        math.lr(body: ({ [[], -                                         math.lr(body: ({ [|], -                                                          text(body: [z]), -                                                          [|] })), -                                         []] })) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { math.sqrt(radicand: { text(body: [⟦]), +                                                             text(body: [x]), +                                                             math.attach(b: none, +                                                                         base: text(body: [⟧]), +                                                                         t: text(body: [2])), +                                                             text(body: [+]), +                                                             text(body: [⟦]), +                                                             text(body: [y]), +                                                             math.attach(b: none, +                                                                         base: text(body: [⟧]), +                                                                         t: text(body: [2])) }), +                                       text(body: [<]), +                                       text(body: [⟦]), +                                       text(body: [z]), +                                       text(body: [⟧]) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [v]), -                        text(body: [=]), -                        math.sqrt(radicand: math.frac(denom: math.frac(denom: text(body: [5]), -                                                                       num: text(body: [4])), -                                                      num: math.frac(denom: text(body: [2]), -                                                                     num: text(body: [1])))), -                        text(body: [=]), -                        math.root(index: text(body: [3]), -                                  radicand: math.frac(denom: math.frac(denom: text(body: [6]), -                                                                       num: math.frac(denom: text(body: [5]), -                                                                                      num: text(body: [4]))), -                                                      num: math.frac(denom: text(body: [3]), -                                                                     num: math.frac(denom: text(body: [2]), -                                                                                    num: text(body: [1]))))), -                        text(body: [=]), -                        math.root(index: text(body: [4]), -                                  radicand: math.frac(denom: math.frac(denom: math.frac(denom: text(body: [4]), -                                                                                        num: text(body: [3])), -                                                                       num: math.frac(denom: text(body: [2]), -                                                                                      num: text(body: [1]))), -                                                      num: math.frac(denom: math.frac(denom: text(body: [4]), -                                                                                      num: text(body: [3])), +                 math.equation(block: true, +                               body: { text(body: [v]), +                                       text(body: [=]), +                                       math.sqrt(radicand: math.frac(denom: math.frac(denom: text(body: [5]), +                                                                                      num: text(body: [4])),                                                                       num: math.frac(denom: text(body: [2]), -                                                                                    num: text(body: [1]))))) }, -                numbering: none), -  parbreak() }+                                                                                    num: text(body: [1])))), +                                       text(body: [=]), +                                       math.root(index: text(body: [3]), +                                                 radicand: math.frac(denom: math.frac(denom: text(body: [6]), +                                                                                      num: math.frac(denom: text(body: [5]), +                                                                                                     num: text(body: [4]))), +                                                                     num: math.frac(denom: text(body: [3]), +                                                                                    num: math.frac(denom: text(body: [2]), +                                                                                                   num: text(body: [1]))))), +                                       text(body: [=]), +                                       math.root(index: text(body: [4]), +                                                 radicand: math.frac(denom: math.frac(denom: math.frac(denom: text(body: [4]), +                                                                                                       num: text(body: [3])), +                                                                                      num: math.frac(denom: text(body: [2]), +                                                                                                     num: text(body: [1]))), +                                                                     num: math.frac(denom: math.frac(denom: text(body: [4]), +                                                                                                     num: text(body: [3])), +                                                                                    num: math.frac(denom: text(body: [2]), +                                                                                                   num: text(body: [1]))))) }, +                               numbering: none), +                 parbreak() })
test/out/math/root-04.out view
@@ -91,24 +91,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.root(index: text(body: [2]), -                                  radicand: text(body: [x])), -                        text(body: [ ]), -                        math.root(index: math.frac(denom: math.frac(denom: text(body: [1]), -                                                                    num: text(body: [2])), -                                                   num: text(body: [3])), -                                  radicand: text(body: [x])), -                        text(body: [ ]), -                        math.root(index: math.frac(denom: text(body: [11]), -                                                   num: text(body: [1])), -                                  radicand: text(body: [x])), -                        text(body: [ ]), -                        math.root(index: math.frac(denom: text(body: [3]), -                                                   num: math.frac(denom: text(body: [2]), -                                                                  num: text(body: [1]))), -                                  radicand: text(body: [1])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.root(index: text(body: [2]), +                                                 radicand: text(body: [x])), +                                       text(body: [ ]), +                                       math.root(index: math.frac(denom: math.frac(denom: text(body: [1]), +                                                                                   num: text(body: [2])), +                                                                  num: text(body: [3])), +                                                 radicand: text(body: [x])), +                                       text(body: [ ]), +                                       math.root(index: math.frac(denom: text(body: [11]), +                                                                  num: text(body: [1])), +                                                 radicand: text(body: [x])), +                                       text(body: [ ]), +                                       math.root(index: math.frac(denom: text(body: [3]), +                                                                  num: math.frac(denom: text(body: [2]), +                                                                                 num: text(body: [1]))), +                                                 radicand: text(body: [1])) }, +                               numbering: none), +                 parbreak() })
test/out/math/root-05.out view
@@ -109,45 +109,45 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.root(index: math.attach(b: none, -                                                     base: text(body: [2]), -                                                     t: text(body: [3]))), -                        text(body: [=]), -                        math.sqrt(radicand: math.attach(b: none, -                                                        base: text(body: [2]), -                                                        t: text(body: [3]))) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { math.root(index: math.attach(b: none, +                                                                    base: text(body: [2]), +                                                                    t: text(body: [3]))), +                                       text(body: [=]), +                                       math.sqrt(radicand: math.attach(b: none, +                                                                       base: text(body: [2]), +                                                                       t: text(body: [3]))) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { math.lr(body: ({ [(], -                                         text(body: [x]), -                                         text(body: [+]), -                                         text(body: [y]), -                                         [)] })), -                        text(body: [ ]), -                        text(body: [∛]), -                        text(body: [x]), -                        text(body: [ ]), -                        text(body: [∜]), -                        text(body: [x]) }, -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: { math.lr(body: ({ [(], +                                                        text(body: [x]), +                                                        text(body: [+]), +                                                        text(body: [y]), +                                                        [)] })), +                                       text(body: [ ]), +                                       text(body: [∛]), +                                       text(body: [x]), +                                       text(body: [ ]), +                                       text(body: [∜]), +                                       text(body: [x]) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: { math.lr(body: ({ [(], -                                         math.root(index: text(body: [2])), -                                         text(body: [+]), -                                         text(body: [3]), -                                         [)] })), -                        text(body: [=]), -                        math.lr(body: ({ [(], -                                         math.sqrt(radicand: text(body: [2])), -                                         text(body: [+]), -                                         text(body: [3]), -                                         [)] })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.lr(body: ({ [(], +                                                        math.root(index: text(body: [2])), +                                                        text(body: [+]), +                                                        text(body: [3]), +                                                        [)] })), +                                       text(body: [=]), +                                       math.lr(body: ({ [(], +                                                        math.sqrt(radicand: text(body: [2])), +                                                        text(body: [+]), +                                                        text(body: [3]), +                                                        [)] })) }, +                               numbering: none), +                 parbreak() })
test/out/math/spacing-00.out view
@@ -75,14 +75,12 @@     , Text "<"     , Text "\10214"     , Text ","-    , MGroup-        (Just "|")-        (Just "|")-        [ Code-            "test/typ/math/spacing-00.typ"-            ( line 5 , column 8 )-            (Ident (Identifier "minus"))-        ]+    , Text "|"+    , Code+        "test/typ/math/spacing-00.typ"+        ( line 5 , column 8 )+        (Ident (Identifier "minus"))+    , Text "|"     , Text ","     , MGroup (Just "[") Nothing [ Text "=" ]     ]@@ -189,120 +187,120 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [ä]), -                        text(body: [,]), -                        text(body: [+]), -                        text(body: [,]), -                        text(body: [c]), -                        text(body: [,]), -                        math.lr(body: ({ [(], -                                         text(body: [,]), -                                         [)] })) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [=]), -                        text(body: [)]), -                        text(body: [,]), -                        math.lr(body: ({ [(], -                                         text(body: [+]), -                                         [)] })), -                        text(body: [,]), -                        math.lr(body: ({ [{], -                                         text(body: [×]), -                                         [}] })) }, -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: { text(body: [ä]), +                                       text(body: [,]), +                                       text(body: [+]), +                                       text(body: [,]), +                                       text(body: [c]), +                                       text(body: [,]), +                                       math.lr(body: ({ [(], +                                                        text(body: [,]), +                                                        [)] })) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [=]), +                                       text(body: [)]), +                                       text(body: [,]), +                                       math.lr(body: ({ [(], +                                                        text(body: [+]), +                                                        [)] })), +                                       text(body: [,]), +                                       math.lr(body: ({ [{], +                                                        text(body: [×]), +                                                        [}] })) }, +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [⟧]), -                        text(body: [<]), -                        text(body: [⟦]), -                        text(body: [,]), -                        math.lr(body: ({ [|], -                                         text(body: [−]), -                                         [|] })), -                        text(body: [,]), -                        text(body: [[]), -                        text(body: [=]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [=]), -                        text(body: [b]), -                        text(body: [,]), -                        text(body: [a]), -                        text(body: [=]), -                        text(body: [=]), -                        text(body: [b]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [−]), -                        text(body: [a]), -                        text(body: [,]), -                        text(body: [+]), -                        text(body: [a]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [¬]), -                        text(body: [b]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [+]), -                        text(body: [b]), -                        text(body: [,]), -                        text(body: [a]), -                        text(body: [∗]), -                        text(body: [b]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [∑]), -                        text(body: [x]), -                        text(body: [,]), -                        text(body: [∑]), -                        text(body: [(]), -                        text(body: [x]), -                        text(body: [)]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [∑]), -                        text(body: [∏]), -                        text(body: [x]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [f]), -                        math.lr(body: ({ [(], -                                         text(body: [x]), -                                         [)] })), -                        text(body: [,]), -                        text(body: [ζ]), -                        text(body: [(]), -                        text(body: [x]), -                        text(body: [)]), -                        text(body: [,]), -                        text(body: [ frac]), -                        math.lr(body: ({ [(], -                                         text(body: [x]), -                                         [)] })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [⟧]), +                                       text(body: [<]), +                                       text(body: [⟦]), +                                       text(body: [,]), +                                       text(body: [|]), +                                       text(body: [−]), +                                       text(body: [|]), +                                       text(body: [,]), +                                       text(body: [[]), +                                       text(body: [=]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [=]), +                                       text(body: [b]), +                                       text(body: [,]), +                                       text(body: [a]), +                                       text(body: [=]), +                                       text(body: [=]), +                                       text(body: [b]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [−]), +                                       text(body: [a]), +                                       text(body: [,]), +                                       text(body: [+]), +                                       text(body: [a]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [¬]), +                                       text(body: [b]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [+]), +                                       text(body: [b]), +                                       text(body: [,]), +                                       text(body: [a]), +                                       text(body: [∗]), +                                       text(body: [b]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [∑]), +                                       text(body: [x]), +                                       text(body: [,]), +                                       text(body: [∑]), +                                       text(body: [(]), +                                       text(body: [x]), +                                       text(body: [)]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [∑]), +                                       text(body: [∏]), +                                       text(body: [x]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [f]), +                                       math.lr(body: ({ [(], +                                                        text(body: [x]), +                                                        [)] })), +                                       text(body: [,]), +                                       text(body: [ζ]), +                                       text(body: [(]), +                                       text(body: [x]), +                                       text(body: [)]), +                                       text(body: [,]), +                                       text(body: [ frac]), +                                       math.lr(body: ({ [(], +                                                        text(body: [x]), +                                                        [)] })) }, +                               numbering: none), +                 parbreak() })
test/out/math/spacing-01.out view
@@ -79,45 +79,45 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [f]), -                        math.lr(body: ({ [(], -                                         text(body: [x]), -                                         [)] })), -                        text(body: [,]), -                        text(body: [f]), -                        math.lr(body: ({ [(], -                                         text(body: [x]), -                                         [)] })) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { math.lr(body: ({ [[], -                                         text(body: [a]), -                                         text(body: [|]), -                                         text(body: [b]), -                                         []] })), -                        text(body: [,]), -                        math.lr(body: ({ [[], -                                         text(body: [a]), -                                         text(body: [ ]), -                                         text(body: [|]), -                                         text(body: [ ]), -                                         text(body: [b]), -                                         []] })) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [is]), -                        text(body: [b]), -                        text(body: [,]), -                        text(body: [a]), -                        text(body: [ is ]), -                        text(body: [b]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [f]), +                                       math.lr(body: ({ [(], +                                                        text(body: [x]), +                                                        [)] })), +                                       text(body: [,]), +                                       text(body: [f]), +                                       math.lr(body: ({ [(], +                                                        text(body: [x]), +                                                        [)] })) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { math.lr(body: ({ [[], +                                                        text(body: [a]), +                                                        text(body: [|]), +                                                        text(body: [b]), +                                                        []] })), +                                       text(body: [,]), +                                       math.lr(body: ({ [[], +                                                        text(body: [a]), +                                                        text(body: [ ]), +                                                        text(body: [|]), +                                                        text(body: [ ]), +                                                        text(body: [b]), +                                                        []] })) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [is]), +                                       text(body: [b]), +                                       text(body: [,]), +                                       text(body: [a]), +                                       text(body: [ is ]), +                                       text(body: [b]) }, +                               numbering: none), +                 parbreak() })
test/out/math/spacing-02.out view
@@ -114,46 +114,46 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [ ]), -                        text(body: [b]), -                        text(body: [,]), -                        text(body: [a]), -                        text(body: [ ]), -                        text(body: [b]), -                        text(body: [,]), -                        text(body: [a]), -                        text(body: [ ]), -                        text(body: [b]), -                        text(body: [,]), -                        text(body: [a]), -                        text(body: [ ]), -                        text(body: [b]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [=]), -                        text(body: [ ]), -                        text(body: [b]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [−]), -                        text(body: [b]), -                        text(body: [≡]), -                        text(body: [c]), -                        text(body: [ ]), -                        math.lr(body: ({ [(], -                                         math.op(limits: false, -                                                 text: "mod"), -                                         text(body: [2]), -                                         [)] })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [ ]), +                                       text(body: [b]), +                                       text(body: [,]), +                                       text(body: [a]), +                                       text(body: [ ]), +                                       text(body: [b]), +                                       text(body: [,]), +                                       text(body: [a]), +                                       text(body: [ ]), +                                       text(body: [b]), +                                       text(body: [,]), +                                       text(body: [a]), +                                       text(body: [ ]), +                                       text(body: [b]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [=]), +                                       text(body: [ ]), +                                       text(body: [b]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [−]), +                                       text(body: [b]), +                                       text(body: [≡]), +                                       text(body: [c]), +                                       text(body: [ ]), +                                       math.lr(body: ({ [(], +                                                        math.op(limits: false, +                                                                text: "mod"), +                                                        text(body: [2]), +                                                        [)] })) }, +                               numbering: none), +                 parbreak() })
test/out/math/spacing-03.out view
@@ -76,24 +76,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: true, -                body: math.lr(body: ({ [{], -                                       text(body: [x]), -                                       text(body: [∈]), -                                       text(body: [ℝ]), -                                       text(body: [ ]), -                                       text(body: [|]), -                                       text(body: [ ]), -                                       text(body: [x]), -                                       text(body: [ is natural ]), -                                       text(body: [∧]), -                                       text(body: [x]), -                                       text(body: [<]), -                                       text(body: [10]), -                                       [}] })), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.lr(body: ({ [{], +                                                      text(body: [x]), +                                                      text(body: [∈]), +                                                      text(body: [ℝ]), +                                                      text(body: [ ]), +                                                      text(body: [|]), +                                                      text(body: [ ]), +                                                      text(body: [x]), +                                                      text(body: [ is natural ]), +                                                      text(body: [∧]), +                                                      text(body: [x]), +                                                      text(body: [<]), +                                                      text(body: [10]), +                                                      [}] })), +                               numbering: none), +                 parbreak() })
test/out/math/spacing-04.out view
@@ -348,95 +348,95 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [≡]), -                        text(body: [b]), -                        text(body: [+]), -                        text(body: [c]), -                        text(body: [−]), -                        text(body: [d]), -                        text(body: [⇒]), -                        text(body: [e]), -                        math.op(limits: false, -                                text: "log"), -                        text(body: [5]), -                        math.op(text: text(body: [ln])), -                        text(body: [6]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        math.cancel(body: text(body: [≡])), -                        text(body: [b]), -                        math.overline(body: text(body: [+])), -                        text(body: [c]), -                        math.accent(accent: →, -                                    base: text(body: [−])), -                        text(body: [d]), -                        math.accent(accent: ^, -                                    base: text(body: [⇒])), -                        text(body: [e]), -                        math.cancel(body: math.op(limits: false, -                                                  text: "log")), -                        text(body: [5]), -                        math.accent(accent: ⋅, -                                    base: math.op(text: text(body: [ln]))), -                        text(body: [6]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        math.overbrace(body: text(body: [≡])), -                        text(body: [b]), -                        math.underline(body: text(body: [+])), -                        text(body: [c]), -                        math.accent(accent: `, -                                    base: text(body: [−])), -                        text(body: [d]), -                        math.underbracket(body: text(body: [⇒])), -                        text(body: [e]), -                        math.accent(accent: ○, -                                    base: math.op(limits: false, -                                                  text: "log")), -                        text(body: [5]), -                        math.accent(accent: ˇ, -                                    base: math.op(text: text(body: [ln]))), -                        text(body: [6]) }, -                numbering: none), -  text(body: [ ]), -  linebreak(), -  linebreak(), -  math.equation(block: false, -                body: { text(body: [a]), -                        math.attach(base: text(body: [≡]), -                                    tl: text(body: [a]), -                                    tr: text(body: [b])), -                        text(body: [b]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: text(body: [+])), -                                    t: text(body: [a])), -                        text(body: [c]), -                        math.accent(accent: ∼, -                                    base: text(body: [−])), -                        text(body: [d]), -                        math.accent(accent: ˘, -                                    base: text(body: [⇒])), -                        text(body: [e]), -                        math.attach(b: text(body: [b]), -                                    base: math.limits(body: math.op(limits: false, -                                                                    text: "log")), -                                    t: text(body: [a])), -                        text(body: [5]), -                        math.attach(base: math.op(text: text(body: [ln])), -                                    bl: text(body: [b]), -                                    tr: text(body: [a])), -                        text(body: [6]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [≡]), +                                       text(body: [b]), +                                       text(body: [+]), +                                       text(body: [c]), +                                       text(body: [−]), +                                       text(body: [d]), +                                       text(body: [⇒]), +                                       text(body: [e]), +                                       math.op(limits: false, +                                               text: "log"), +                                       text(body: [5]), +                                       math.op(text: text(body: [ln])), +                                       text(body: [6]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       math.cancel(body: text(body: [≡])), +                                       text(body: [b]), +                                       math.overline(body: text(body: [+])), +                                       text(body: [c]), +                                       math.accent(accent: →, +                                                   base: text(body: [−])), +                                       text(body: [d]), +                                       math.accent(accent: ^, +                                                   base: text(body: [⇒])), +                                       text(body: [e]), +                                       math.cancel(body: math.op(limits: false, +                                                                 text: "log")), +                                       text(body: [5]), +                                       math.accent(accent: ⋅, +                                                   base: math.op(text: text(body: [ln]))), +                                       text(body: [6]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       math.overbrace(body: text(body: [≡])), +                                       text(body: [b]), +                                       math.underline(body: text(body: [+])), +                                       text(body: [c]), +                                       math.accent(accent: `, +                                                   base: text(body: [−])), +                                       text(body: [d]), +                                       math.underbracket(body: text(body: [⇒])), +                                       text(body: [e]), +                                       math.accent(accent: ○, +                                                   base: math.op(limits: false, +                                                                 text: "log")), +                                       text(body: [5]), +                                       math.accent(accent: ˇ, +                                                   base: math.op(text: text(body: [ln]))), +                                       text(body: [6]) }, +                               numbering: none), +                 text(body: [ ]), +                 linebreak(), +                 linebreak(), +                 math.equation(block: false, +                               body: { text(body: [a]), +                                       math.attach(base: text(body: [≡]), +                                                   tl: text(body: [a]), +                                                   tr: text(body: [b])), +                                       text(body: [b]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: text(body: [+])), +                                                   t: text(body: [a])), +                                       text(body: [c]), +                                       math.accent(accent: ∼, +                                                   base: text(body: [−])), +                                       text(body: [d]), +                                       math.accent(accent: ˘, +                                                   base: text(body: [⇒])), +                                       text(body: [e]), +                                       math.attach(b: text(body: [b]), +                                                   base: math.limits(body: math.op(limits: false, +                                                                                   text: "log")), +                                                   t: text(body: [a])), +                                       text(body: [5]), +                                       math.attach(base: math.op(text: text(body: [ln])), +                                                   bl: text(body: [b]), +                                                   tr: text(body: [a])), +                                       text(body: [6]) }, +                               numbering: none), +                 parbreak() })
test/out/math/style-00.out view
@@ -68,21 +68,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [a]), -                        text(body: [,]), -                        text(body: [A]), -                        text(body: [,]), -                        text(body: [δ]), -                        text(body: [,]), -                        text(body: [ϵ]), -                        text(body: [,]), -                        text(body: [∂]), -                        text(body: [,]), -                        text(body: [Δ]), -                        text(body: [,]), -                        text(body: [ϴ]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [a]), +                                       text(body: [,]), +                                       text(body: [A]), +                                       text(body: [,]), +                                       text(body: [δ]), +                                       text(body: [,]), +                                       text(body: [ϵ]), +                                       text(body: [,]), +                                       text(body: [∂]), +                                       text(body: [,]), +                                       text(body: [Δ]), +                                       text(body: [,]), +                                       text(body: [ϴ]) }, +                               numbering: none), +                 parbreak() })
test/out/math/style-01.out view
@@ -170,50 +170,50 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [A]), -                        text(body: [,]), -                        math.italic(body: text(body: [A])), -                        text(body: [,]), -                        math.upright(body: text(body: [A])), -                        text(body: [,]), -                        math.bold(body: text(body: [A])), -                        text(body: [,]), -                        math.bold(body: math.upright(body: text(body: [A]))), -                        text(body: [,]), -                        linebreak(), -                        math.serif(body: text(body: [A])), -                        text(body: [,]), -                        math.sans(body: text(body: [A])), -                        text(body: [,]), -                        math.cal(body: text(body: [A])), -                        text(body: [,]), -                        math.frak(body: text(body: [A])), -                        text(body: [,]), -                        math.mono(body: text(body: [A])), -                        text(body: [,]), -                        math.bb(body: text(body: [A])), -                        text(body: [,]), -                        linebreak(), -                        math.italic(body: text(body: [∂])), -                        text(body: [,]), -                        math.upright(body: text(body: [∂])), -                        text(body: [,]), -                        linebreak(), -                        math.bb(body: text(body: [hello])), -                        text(body: [+]), -                        math.bold(body: math.cal(body: text(body: [world]))), -                        text(body: [,]), -                        linebreak(), -                        math.mono(body: text(body: [SQRT])), -                        text(body: [(]), -                        text(body: [x]), -                        text(body: [)]), -                        text(body: [≀]), -                        math.mono(body: { text(body: [123]), -                                          text(body: [+]), -                                          text(body: [456]) }) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [A]), +                                       text(body: [,]), +                                       math.italic(body: text(body: [A])), +                                       text(body: [,]), +                                       math.upright(body: text(body: [A])), +                                       text(body: [,]), +                                       math.bold(body: text(body: [A])), +                                       text(body: [,]), +                                       math.bold(body: math.upright(body: text(body: [A]))), +                                       text(body: [,]), +                                       linebreak(), +                                       math.serif(body: text(body: [A])), +                                       text(body: [,]), +                                       math.sans(body: text(body: [A])), +                                       text(body: [,]), +                                       math.cal(body: text(body: [A])), +                                       text(body: [,]), +                                       math.frak(body: text(body: [A])), +                                       text(body: [,]), +                                       math.mono(body: text(body: [A])), +                                       text(body: [,]), +                                       math.bb(body: text(body: [A])), +                                       text(body: [,]), +                                       linebreak(), +                                       math.italic(body: text(body: [∂])), +                                       text(body: [,]), +                                       math.upright(body: text(body: [∂])), +                                       text(body: [,]), +                                       linebreak(), +                                       math.bb(body: text(body: [hello])), +                                       text(body: [+]), +                                       math.bold(body: math.cal(body: text(body: [world]))), +                                       text(body: [,]), +                                       linebreak(), +                                       math.mono(body: text(body: [SQRT])), +                                       text(body: [(]), +                                       text(body: [x]), +                                       text(body: [)]), +                                       text(body: [≀]), +                                       math.mono(body: { text(body: [123]), +                                                         text(body: [+]), +                                                         text(body: [456]) }) }, +                               numbering: none), +                 parbreak() })
test/out/math/style-02.out view
@@ -109,21 +109,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: [h]), -                        text(body: [,]), -                        math.bb(body: text(body: [N])), -                        text(body: [,]), -                        math.cal(body: text(body: [R])), -                        text(body: [,]), -                        text(body: [Θ]), -                        text(body: [,]), -                        math.italic(body: text(body: [Θ])), -                        text(body: [,]), -                        math.sans(body: text(body: [Θ])), -                        text(body: [,]), -                        math.sans(body: math.italic(body: text(body: [Θ]))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: [h]), +                                       text(body: [,]), +                                       math.bb(body: text(body: [N])), +                                       text(body: [,]), +                                       math.cal(body: text(body: [R])), +                                       text(body: [,]), +                                       text(body: [Θ]), +                                       text(body: [,]), +                                       math.italic(body: text(body: [Θ])), +                                       text(body: [,]), +                                       math.sans(body: text(body: [Θ])), +                                       text(body: [,]), +                                       math.sans(body: math.italic(body: text(body: [Θ]))) }, +                               numbering: none), +                 parbreak() })
test/out/math/style-03.out view
@@ -55,14 +55,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [よ]), -                        text(body: [∧]), -                        text(body: [🏳]), -                        text(body: [️]), -                        text(body: [‍]), -                        text(body: [🌈]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [よ]), +                                       text(body: [∧]), +                                       text(body: [🏳]), +                                       text(body: [️]), +                                       text(body: [‍]), +                                       text(body: [🌈]) }, +                               numbering: none), +                 parbreak() })
test/out/math/style-04.out view
@@ -60,14 +60,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: { text(body: math.attach(b: none, -                                               base: text(body: [ time]), -                                               t: text(body: [2])), -                             color: rgb(100%,25%,21%,100%)), -                        text(body: [+]), -                        math.sqrt(radicand: text(body: [place])) }, -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: { text(body: math.attach(b: none, +                                                              base: text(body: [ time]), +                                                              t: text(body: [2])), +                                            color: rgb(100%,25%,21%,100%)), +                                       text(body: [+]), +                                       math.sqrt(radicand: text(body: [place])) }, +                               numbering: none), +                 parbreak() })
test/out/math/style-05.out view
@@ -92,23 +92,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [v]), -                        text(body: [≔]), -                        math.vec(children: ({ text(body: [1]), -                                              text(body: [+]), -                                              text(body: [2]) }, -                                            { text(body: [2]), -                                              text(body: [−]), -                                              text(body: [4]) }, -                                            math.sqrt(radicand: text(body: [3])), -                                            math.accent(accent: →, -                                                        base: text(body: [x])))), -                        text(body: [+]), -                        text(body: [1]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [v]), +                                       text(body: [≔]), +                                       math.vec(children: ({ text(body: [1]), +                                                             text(body: [+]), +                                                             text(body: [2]) }, +                                                           { text(body: [2]), +                                                             text(body: [−]), +                                                             text(body: [4]) }, +                                                           math.sqrt(radicand: text(body: [3])), +                                                           math.accent(accent: →, +                                                                       base: text(body: [x])))), +                                       text(body: [+]), +                                       text(body: [1]) }, +                               numbering: none), +                 parbreak() })
test/out/math/style-06.out view
@@ -82,23 +82,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [a]), -                        math.equation(block: false, -                                      body: { h(amount: 1.0em), -                                              text(body: { [], -                                                           math.equation(block: false, -                                                                         body: { h(amount: 1.0em), -                                                                                 text(body: [⊢]), -                                                                                 h(amount: 1.0em) }, -                                                                         numbering: none), -                                                           [] }), -                                              h(amount: 1.0em) }, -                                      numbering: none), -                        text(body: [b]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [a]), +                                       math.equation(block: false, +                                                     body: { h(amount: 1.0em), +                                                             text(body: { [], +                                                                          math.equation(block: false, +                                                                                        body: { h(amount: 1.0em), +                                                                                                text(body: [⊢]), +                                                                                                h(amount: 1.0em) }, +                                                                                        numbering: none), +                                                                          [] }), +                                                             h(amount: 1.0em) }, +                                                     numbering: none), +                                       text(body: [b]) }, +                               numbering: none), +                 parbreak() })
test/out/math/syntax-00.out view
@@ -68,25 +68,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.attach(b: { text(body: [i]), -                                         text(body: [=]), -                                         text(body: [0]) }, -                                    base: text(body: [∑]), -                                    t: text(body: [ℕ])), -                        text(body: [a]), -                        text(body: [∘]), -                        text(body: [b]), -                        text(body: [=]), -                        math.attach(b: { text(body: [i]), -                                         text(body: [=]), -                                         text(body: [0]) }, -                                    base: text(body: [∑]), -                                    t: text(body: [ℕ])), -                        text(body: [a]), -                        text(body: [∘]), -                        text(body: [b]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.attach(b: { text(body: [i]), +                                                        text(body: [=]), +                                                        text(body: [0]) }, +                                                   base: text(body: [∑]), +                                                   t: text(body: [ℕ])), +                                       text(body: [a]), +                                       text(body: [∘]), +                                       text(body: [b]), +                                       text(body: [=]), +                                       math.attach(b: { text(body: [i]), +                                                        text(body: [=]), +                                                        text(body: [0]) }, +                                                   base: text(body: [∑]), +                                                   t: text(body: [ℕ])), +                                       text(body: [a]), +                                       text(body: [∘]), +                                       text(body: [b]) }, +                               numbering: none), +                 parbreak() })
test/out/math/syntax-01.out view
@@ -83,8 +83,21 @@         (FuncCall            (Ident (Identifier "cases"))            [ BlockArg-               [ MGroup-                   (Just "[") (Just "]") [ MGroup (Just "|") (Just "|") [ Text "1" ] ]+               [ Code+                   "test/typ/math/syntax-01.typ"+                   ( line 5 , column 5 )+                   (FieldAccess+                      (Ident (Identifier "l"))+                      (FieldAccess+                         (Ident (Identifier "double")) (Ident (Identifier "bracket"))))+               , Text "1"+               , Code+                   "test/typ/math/syntax-01.typ"+                   ( line 5 , column 8 )+                   (FieldAccess+                      (Ident (Identifier "r"))+                      (FieldAccess+                         (Ident (Identifier "double")) (Ident (Identifier "bracket"))))                , MAlignPoint                , Text "if "                , Text "n"@@ -133,41 +146,39 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.underline(body: { text(body: [f]), -                                               text(body: [′]), -                                               text(body: [:]), -                                               text(body: [ℕ]), -                                               text(body: [→]), -                                               text(body: [ℝ]) }), -                        linebreak(), -                        text(body: [n]), -                        text(body: [↦]), -                        math.cases(children: ({ math.lr(body: ({ [[], -                                                                 math.lr(body: ({ [|], -                                                                                  text(body: [1]), -                                                                                  [|] })), -                                                                 []] })), -                                                math.alignpoint(), -                                                text(body: [if ]), -                                                text(body: [n]), -                                                text(body: [⋙]), -                                                text(body: [10]) }, -                                              { text(body: [2]), -                                                text(body: [∗]), -                                                text(body: [3]), -                                                math.alignpoint(), -                                                text(body: [if ]), -                                                text(body: [n]), -                                                text(body: [≠]), -                                                text(body: [5]) }, -                                              { text(body: [1]), -                                                text(body: [−]), -                                                text(body: [0]), -                                                text(body: [ ]), -                                                math.alignpoint(), -                                                text(body: […]) })) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.underline(body: { text(body: [f]), +                                                              text(body: [′]), +                                                              text(body: [:]), +                                                              text(body: [ℕ]), +                                                              text(body: [→]), +                                                              text(body: [ℝ]) }), +                                       linebreak(), +                                       text(body: [n]), +                                       text(body: [↦]), +                                       math.cases(children: ({ text(body: [⟦]), +                                                               text(body: [1]), +                                                               text(body: [⟧]), +                                                               math.alignpoint(), +                                                               text(body: [if ]), +                                                               text(body: [n]), +                                                               text(body: [⋙]), +                                                               text(body: [10]) }, +                                                             { text(body: [2]), +                                                               text(body: [∗]), +                                                               text(body: [3]), +                                                               math.alignpoint(), +                                                               text(body: [if ]), +                                                               text(body: [n]), +                                                               text(body: [≠]), +                                                               text(body: [5]) }, +                                                             { text(body: [1]), +                                                               text(body: [−]), +                                                               text(body: [0]), +                                                               text(body: [ ]), +                                                               math.alignpoint(), +                                                               text(body: […]) })) }, +                               numbering: none), +                 parbreak() })
test/out/math/syntax-02.out view
@@ -70,17 +70,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [⋅]), -                        linebreak(), -                        text(body: […]), -                        linebreak(), -                        text(body: [∗]), -                        linebreak(), -                        text(body: [∼]), -                        linebreak(), -                        text(body: [⋆]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [⋅]), +                                       linebreak(), +                                       text(body: […]), +                                       linebreak(), +                                       text(body: [∗]), +                                       linebreak(), +                                       text(body: [∼]), +                                       linebreak(), +                                       text(body: [⋆]) }, +                               numbering: none), +                 parbreak() })
test/out/math/unbalanced-00.out view
@@ -88,45 +88,45 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.frac(denom: { text(body: [(]), -                                         text(body: [2]), -                                         math.lr(body: ({ [(], -                                                          text(body: [x]), -                                                          [)] })) }, -                                num: text(body: [1])), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.frac(denom: { text(body: [(]), +                                                        text(body: [2]), +                                                        math.lr(body: ({ [(], +                                                                         text(body: [x]), +                                                                         [)] })) }, +                                               num: text(body: [1])), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.attach(b: { text(body: [(]), -                                       text(body: [2]), -                                       text(body: [y]), -                                       math.lr(body: ({ [(], -                                                        text(body: [x]), -                                                        [)] })), -                                       math.lr(body: ({ [(], -                                                        [)] })) }, -                                  base: text(body: [1]), -                                  t: none), -                numbering: none), -  text(body: [+                 math.equation(block: true, +                               body: math.attach(b: { text(body: [(]), +                                                      text(body: [2]), +                                                      text(body: [y]), +                                                      math.lr(body: ({ [(], +                                                                       text(body: [x]), +                                                                       [)] })), +                                                      math.lr(body: ({ [(], +                                                                       [)] })) }, +                                                 base: text(body: [1]), +                                                 t: none), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: true, -                body: math.frac(denom: { text(body: [(]), -                                         text(body: [2]), -                                         text(body: [y]), -                                         math.lr(body: ({ [(], -                                                          text(body: [x]), -                                                          [)] })), -                                         math.lr(body: ({ [(], -                                                          text(body: [2]), -                                                          math.lr(body: ({ [(], -                                                                           text(body: [3]), -                                                                           [)] })), -                                                          [)] })) }, -                                num: text(body: [1])), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.frac(denom: { text(body: [(]), +                                                        text(body: [2]), +                                                        text(body: [y]), +                                                        math.lr(body: ({ [(], +                                                                         text(body: [x]), +                                                                         [)] })), +                                                        math.lr(body: ({ [(], +                                                                         text(body: [2]), +                                                                         math.lr(body: ({ [(], +                                                                                          text(body: [3]), +                                                                                          [)] })), +                                                                         [)] })) }, +                                               num: text(body: [1])), +                               numbering: none), +                 parbreak() })
test/out/math/underover-00.out view
@@ -76,21 +76,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        text(body: [=]), -                        math.underbrace(annotation: math.underbrace(annotation: { text(body: [x]), -                                                                                  text(body: [+]), -                                                                                  text(body: [y]) }, -                                                                    body: text(body: [numbers])), -                                        body: { text(body: [1]), -                                                text(body: [+]), -                                                text(body: [2]), -                                                text(body: [+]), -                                                text(body: […]), -                                                text(body: [+]), -                                                text(body: [5]) }) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       text(body: [=]), +                                       math.underbrace(annotation: math.underbrace(annotation: { text(body: [x]), +                                                                                                 text(body: [+]), +                                                                                                 text(body: [y]) }, +                                                                                   body: text(body: [numbers])), +                                                       body: { text(body: [1]), +                                                               text(body: [+]), +                                                               text(body: [2]), +                                                               text(body: [+]), +                                                               text(body: […]), +                                                               text(body: [+]), +                                                               text(body: [5]) }) }, +                               numbering: none), +                 parbreak() })
test/out/math/underover-01.out view
@@ -82,20 +82,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [x]), -                        text(body: [=]), -                        math.overbracket(annotation: { text(body: [1]), -                                                       text(body: [+]), -                                                       text(body: [2]), -                                                       text(body: [+]), -                                                       text(body: […]), -                                                       text(body: [+]), -                                                       text(body: [5]) }, -                                         body: math.overline(body: math.underline(body: { text(body: [x]), -                                                                                          text(body: [+]), -                                                                                          text(body: [y]) }))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [x]), +                                       text(body: [=]), +                                       math.overbracket(annotation: { text(body: [1]), +                                                                      text(body: [+]), +                                                                      text(body: [2]), +                                                                      text(body: [+]), +                                                                      text(body: […]), +                                                                      text(body: [+]), +                                                                      text(body: [5]) }, +                                                        body: math.overline(body: math.underline(body: { text(body: [x]), +                                                                                                         text(body: [+]), +                                                                                                         text(body: [y]) }))) }, +                               numbering: none), +                 parbreak() })
test/out/math/underover-02.out view
@@ -83,23 +83,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { math.underbracket(annotation: text(body: [ relevant stuff]), -                                          body: math.lr(body: ({ [[], -                                                                 text(body: [1]), -                                                                 text(body: [,]), -                                                                 math.frac(denom: text(body: [3]), -                                                                           num: text(body: [2])), -                                                                 []] }))), -                        text(body: [⟺]), -                        math.overbracket(annotation: text(body: [ irrelevant stuff]), -                                         body: math.lr(body: ({ [[], -                                                                math.frac(denom: text(body: [5]), -                                                                          num: text(body: [4])), -                                                                text(body: [,]), -                                                                text(body: [6]), -                                                                []] }))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { math.underbracket(annotation: text(body: [ relevant stuff]), +                                                         body: math.lr(body: ({ [[], +                                                                                text(body: [1]), +                                                                                text(body: [,]), +                                                                                math.frac(denom: text(body: [3]), +                                                                                          num: text(body: [2])), +                                                                                []] }))), +                                       text(body: [⟺]), +                                       math.overbracket(annotation: text(body: [ irrelevant stuff]), +                                                        body: math.lr(body: ({ [[], +                                                                               math.frac(denom: text(body: [5]), +                                                                                         num: text(body: [4])), +                                                                               text(body: [,]), +                                                                               text(body: [6]), +                                                                               []] }))) }, +                               numbering: none), +                 parbreak() })
test/out/math/vec-00.out view
@@ -57,15 +57,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [v]), -                        text(body: [=]), -                        math.vec(children: (text(body: [1]), -                                            { text(body: [2]), -                                              text(body: [+]), -                                              text(body: [3]) }, -                                            text(body: [4]))) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [v]), +                                       text(body: [=]), +                                       math.vec(children: (text(body: [1]), +                                                           { text(body: [2]), +                                                             text(body: [+]), +                                                             text(body: [3]) }, +                                                           text(body: [4]))) }, +                               numbering: none), +                 parbreak() })
test/out/math/vec-01.out view
@@ -60,13 +60,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  math.equation(block: true, -                body: math.vec(children: (text(body: [1]), -                                          text(body: [2])), -                               delim: "["), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.vec(children: (text(body: [1]), +                                                         text(body: [2])), +                                              delim: "["), +                               numbering: none), +                 parbreak() })
test/out/meta/bibliography-01.out view
@@ -56,9 +56,9 @@     ( line 4 , column 11 )     (FuncCall        (Ident (Identifier "cite"))-       [ NormalArg (Literal (String "arrgh"))-       , NormalArg (Literal (String "distress"))-       , NormalArg+       [ NormalArg (Label "distress")+       , KeyValArg+           (Identifier "supplement")            (Block (Content [ Text "p" , Text "." , Space , Text "22" ]))        ]) , Text ","@@ -84,23 +84,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  heading(body: text(body: [Details]), -          level: 1), -  text(body: [See also ]), -  cite(keys: ("arrgh", -              "distress", -              text(body: [p. 22]))), -  text(body: [, ]), -  ref(supplement: text(body: [p. 4]), -      target: ), -  text(body: [, and ]), -  ref(supplement: text(body: [p. 5]), -      target: ), -  text(body: [.+                 heading(body: text(body: [Details]), +                         level: 1), +                 text(body: [See also ]), +                 cite(key: <distress>, +                      supplement: text(body: [p. 22])), +                 text(body: [, ]), +                 ref(supplement: text(body: [p. 4]), +                     target: <arrgh>), +                 text(body: [, and ]), +                 ref(supplement: text(body: [p. 5]), +                     target: <distress>), +                 text(body: [. ]), -  bibliography(path: "/works.bib"), -  parbreak() }+                 bibliography(path: "/works.bib"), +                 parbreak() })
test/out/meta/bibliography-02.out view
@@ -138,29 +138,29 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  bibliography(path: "/works.bib", -               style: "chicago-author-date", -               title: text(body: [Works to be cited])), -  text(body: [+                 bibliography(path: "/works.bib", +                              style: "chicago-author-date", +                              title: text(body: [Works to be cited])), +                 text(body: [ ]), -  line(length: 100%), -  text(body: [+                 line(length: 100%), +                 text(body: [ ]), -  text(body: [+                 text(body: [ As described by ]), -  ref(supplement: auto, -      target: ), -  text(body: [,+                 ref(supplement: auto, +                     target: <netwok>), +                 text(body: [, the net-work is a creature of its own. This is close to piratery! ]), -  ref(supplement: auto, -      target: ), -  text(body: [+                 ref(supplement: auto, +                     target: <arrgh>), +                 text(body: [ And quark! ]), -  ref(supplement: auto, -      target: ), -  parbreak() }+                 ref(supplement: auto, +                     target: <quark>), +                 parbreak() })
test/out/meta/bibliography-04.out view
@@ -79,10 +79,12 @@     "test/typ/meta/bibliography-04.typ"     ( line 7 , column 49 )     (FuncCall-       (Ident (Identifier "cite"))-       [ NormalArg (Literal (String "glacier-melt"))-       , NormalArg (Literal (String "keshav2007read"))-       ])+       (Ident (Identifier "cite")) [ NormalArg (Label "glacier-melt") ])+, Code+    "test/typ/meta/bibliography-04.typ"+    ( line 7 , column 70 )+    (FuncCall+       (Ident (Identifier "cite")) [ NormalArg (Label "keshav2007read") ]) , SoftBreak , Code     "test/typ/meta/bibliography-04.typ"@@ -98,21 +100,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Multiple Bibs]), -          level: 1, -          numbering: "1."), -  text(body: [Now we have multiple bibliographies containing ]), -  cite(keys: ("glacier-melt", -              "keshav2007read")), -  text(body: [+                 parbreak(), +                 heading(body: text(body: [Multiple Bibs]), +                         level: 1, +                         numbering: "1."), +                 text(body: [Now we have multiple bibliographies containing ]), +                 cite(key: <glacier-melt>), +                 cite(key: <keshav2007read>), +                 text(body: [ ]), -  bibliography(path: ("/works.bib", -                      "/works_too.bib")), -  parbreak() }+                 bibliography(path: ("/works.bib", +                                     "/works_too.bib")), +                 parbreak() })
test/out/meta/bibliography-ordering-00.out view
@@ -89,46 +89,46 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [+                 parbreak(), +                 ref(supplement: auto, +                     target: <mcintosh_anxiety>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <psychology25>), +                 text(body: [ ]), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [,+                 ref(supplement: auto, +                     target: <netwok>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <issue201>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <arrgh>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <quark>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <distress>), +                 text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  text(body: [, ]), -  ref(supplement: auto, -      target: ), -  parbreak(), -  bibliography(path: "/works.bib"), -  parbreak() }+                 ref(supplement: auto, +                     target: <glacier-melt>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <issue201>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <tolkien54>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <sharing>), +                 text(body: [, ]), +                 ref(supplement: auto, +                     target: <restful>), +                 parbreak(), +                 bibliography(path: "/works.bib"), +                 parbreak() })
test/out/meta/cite-footnote-00.out view
@@ -66,18 +66,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ Hello ]), -  ref(supplement: auto, -      target: ), -  text(body: [+                 ref(supplement: auto, +                     target: <netwok>), +                 text(body: [ And again: ]), -  ref(supplement: auto, -      target: ), -  parbreak(), -  pagebreak(), -  text(body: [+                 ref(supplement: auto, +                     target: <netwok>), +                 parbreak(), +                 pagebreak(), +                 text(body: [ ]), -  bibliography(path: "/works.bib", -               style: "chicago-notes"), -  parbreak() }+                 bibliography(path: "/works.bib", +                              style: "chicago-notes"), +                 parbreak() })
test/out/meta/counter-00.out view
@@ -159,30 +159,30 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Final: ]), -  locate(func: ), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 parbreak(), +                 text(body: [Final: ]), +                 locate(func: ), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ First: ]), -  text(body: [1]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 text(body: [1]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ ]), -  text(body: [7]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 text(body: [7]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ Second: ]), -  text(body: [9]), -  text(body: [+                 text(body: [9]), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/meta/counter-01.out view
@@ -110,25 +110,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [ ]), -  <heya>, -  text(body: [+                 text(body: [ ]), +                 <heya>, +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  box(body: text(body: [hey, there!])), -  text(body: [ ]), -  <heya>, -  text(body: [ ]), -  text(body: [0]), -  text(body: [ ]), -  linebreak(), -  box(body: text(body: [more here!])), -  text(body: [ ]), -  <heya>, -  text(body: [ ]), -  text(body: [0]), -  parbreak() }+                 parbreak(), +                 box(body: text(body: [hey, there!])), +                 text(body: [ ]), +                 <heya>, +                 text(body: [ ]), +                 text(body: [0]), +                 text(body: [ ]), +                 linebreak(), +                 box(body: text(body: [more here!])), +                 text(body: [ ]), +                 <heya>, +                 text(body: [ ]), +                 text(body: [0]), +                 parbreak() })
test/out/meta/counter-02.out view
@@ -159,31 +159,31 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Alpha]), -          level: 1, -          numbering: "1.a."), -  text(body: [In ]), -  text(body: [1]), -  text(body: [+                 parbreak(), +                 heading(body: text(body: [Alpha]), +                         level: 1, +                         numbering: "1.a."), +                 text(body: [In ]), +                 text(body: [1]), +                 text(body: [ ]), -  heading(body: text(body: [Beta]), -          level: 2, -          numbering: "1.a."), -  text(body: [+                 heading(body: text(body: [Beta]), +                         level: 2, +                         numbering: "1.a."), +                 text(body: [ ]), -  heading(body: text(body: [Gamma]), -          level: 1, -          numbering: none), -  heading(body: text(body: [Delta]), -          numbering: "I."), -  parbreak(), -  text(body: [At Beta, it was ]), -  locate(func: ), -  parbreak() }+                 heading(body: text(body: [Gamma]), +                         level: 1, +                         numbering: none), +                 heading(body: text(body: [Delta]), +                         numbering: "I."), +                 parbreak(), +                 text(body: [At Beta, it was ]), +                 locate(func: ), +                 parbreak() })
test/out/meta/counter-03.out view
@@ -148,32 +148,32 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  figure(body: emph(body: text(body: [AAAA!])), -         caption: text(body: [Four ‘A’s]), -         kind: , -         numbering: "A", -         supplement: "Figure"), -  text(body: [+                 figure(body: emph(body: text(body: [AAAA!])), +                        caption: text(body: [Four ‘A’s]), +                        kind: , +                        numbering: "A", +                        supplement: "Figure"), +                 text(body: [ ]), -  figure(body: emph(body: text(body: [BBBB!])), -         caption: text(body: [Four ‘B’s]), -         kind: , -         numbering: none, -         supplement: "Figure"), -  text(body: [+                 figure(body: emph(body: text(body: [BBBB!])), +                        caption: text(body: [Four ‘B’s]), +                        kind: , +                        numbering: none, +                        supplement: "Figure"), +                 text(body: [ ]), -  figure(body: emph(body: text(body: [CCCC!])), -         caption: text(body: [Four ‘C’s]), -         kind: , -         supplement: "Figure"), -  text(body: [+                 figure(body: emph(body: text(body: [CCCC!])), +                        caption: text(body: [Four ‘C’s]), +                        kind: , +                        supplement: "Figure"), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  figure(body: emph(body: text(body: [DDDD!])), -         caption: text(body: [Four ‘D’s]), -         kind: , -         supplement: "Figure"), -  parbreak() }+                 figure(body: emph(body: text(body: [DDDD!])), +                        caption: text(body: [Four ‘D’s]), +                        kind: , +                        supplement: "Figure"), +                 parbreak() })
test/out/meta/counter-page-00.out view
@@ -105,26 +105,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), -  text(body: [+                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur]), -  text(body: [+                 text(body: [Lorem ipsum dolor sit amet, consectetur]), +                 text(body: [ ]), -  pagebreak(), -  text(body: [+                 pagebreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), -  parbreak() }+                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), +                 parbreak() })
test/out/meta/document-00.out view
@@ -55,8 +55,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ What’s up?]), -  parbreak() }+                 parbreak() })
test/out/meta/document-01.out view
@@ -53,6 +53,6 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak() }+                 parbreak() })
test/out/meta/figure-00.out view
@@ -181,45 +181,45 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [We can clearly see that ]), -  ref(supplement: auto, -      target: ), -  text(body: [ and+                 parbreak(), +                 text(body: [We can clearly see that ]), +                 ref(supplement: auto, +                     target: <fig-cylinder>), +                 text(body: [ and ]), -  ref(supplement: auto, -      target: ), -  text(body: [ are relevant in this context.]), -  parbreak(), -  figure(body: table(children: (text(body: [a]), -                                text(body: [b])), -                     columns: 2), -         caption: text(body: [The basic table.]), -         numbering: "I"), -  text(body: [ ]), -  <tab-basic>, -  parbreak(), -  figure(body: pad(body: image(height: 2.0cm, -                               path: "test/assets/files/cylinder.svg"), -                   y: -6.0pt), -         caption: text(body: [The basic shapes.]), -         numbering: "I"), -  text(body: [ ]), -  <fig-cylinder>, -  parbreak(), -  figure(body: table(children: (text(body: [a]), -                                text(body: [b]), -                                text(body: [c]), -                                text(body: [d]), -                                text(body: [e]), -                                text(body: [f])), -                     columns: 3), -         caption: text(body: [The complex table.]), -         numbering: "I"), -  text(body: [ ]), -  <tab-complex>, -  parbreak() }+                 ref(supplement: auto, +                     target: <tab-complex>), +                 text(body: [ are relevant in this context.]), +                 parbreak(), +                 figure(body: table(children: (text(body: [a]), +                                               text(body: [b])), +                                    columns: 2), +                        caption: text(body: [The basic table.]), +                        numbering: "I"), +                 text(body: [ ]), +                 <tab-basic>, +                 parbreak(), +                 figure(body: pad(body: image(height: 2.0cm, +                                              path: "test/assets/files/cylinder.svg"), +                                  y: -6.0pt), +                        caption: text(body: [The basic shapes.]), +                        numbering: "I"), +                 text(body: [ ]), +                 <fig-cylinder>, +                 parbreak(), +                 figure(body: table(children: (text(body: [a]), +                                               text(body: [b]), +                                               text(body: [c]), +                                               text(body: [d]), +                                               text(body: [e]), +                                               text(body: [f])), +                                    columns: 3), +                        caption: text(body: [The complex table.]), +                        numbering: "I"), +                 text(body: [ ]), +                 <tab-complex>, +                 parbreak() })
test/out/meta/figure-01.out view
@@ -68,11 +68,11 @@ , ParBreak ] --- evaluated ----{ parbreak(), -  figure(body: table(children: (text(body: [Second cylinder]), -                                image(path: "test/assets/files/cylinder.svg")), -                     columns: 2), -         caption: "A table containing images."), -  text(body: [ ]), -  <fig-image-in-table>, -  parbreak() }+document(body: { parbreak(), +                 figure(body: table(children: (text(body: [Second cylinder]), +                                               image(path: "test/assets/files/cylinder.svg")), +                                    columns: 2), +                        caption: "A table containing images."), +                 text(body: [ ]), +                 <fig-image-in-table>, +                 parbreak() })
test/out/meta/figure-03.out view
@@ -77,15 +77,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  figure(body: table(children: (text(body: [a]), -                                text(body: [b]), -                                text(body: [c]), -                                text(body: [d]), -                                text(body: [e]))), -         caption: text(body: [A table])), -  parbreak() }+                 parbreak(), +                 figure(body: table(children: (text(body: [a]), +                                               text(body: [b]), +                                               text(body: [c]), +                                               text(body: [d]), +                                               text(body: [e]))), +                        caption: text(body: [A table])), +                 parbreak() })
test/out/meta/footnote-00.out view
@@ -47,7 +47,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  footnote(body: text(body: [Hi])), -  parbreak() }+                 footnote(body: text(body: [Hi])), +                 parbreak() })
test/out/meta/footnote-01.out view
@@ -58,12 +58,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A]), -  footnote(body: text(body: [A])), -  text(body: [ ]), -  linebreak(), -  text(body: [A ]), -  footnote(body: text(body: [A])), -  parbreak() }+                 text(body: [A]), +                 footnote(body: text(body: [A])), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [A ]), +                 footnote(body: text(body: [A])), +                 parbreak() })
test/out/meta/footnote-02.out view
@@ -95,20 +95,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [First ]), -  linebreak(), -  text(body: [Second ]), -  footnote(body: { text(body: [A, ]), -                   footnote(body: { text(body: [B, ]), -                                    footnote(body: text(body: [C])) }) }), -  text(body: [ ]), -  linebreak(), -  text(body: [Third ]), -  footnote(body: { text(body: [D, ]), -                   footnote(body: text(body: [E])) }), -  text(body: [ ]), -  linebreak(), -  text(body: [Fourth]), -  parbreak() }+                 text(body: [First ]), +                 linebreak(), +                 text(body: [Second ]), +                 footnote(body: { text(body: [A, ]), +                                  footnote(body: { text(body: [B, ]), +                                                   footnote(body: text(body: [C])) }) }), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [Third ]), +                 footnote(body: { text(body: [D, ]), +                                  footnote(body: text(body: [E])) }), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [Fourth]), +                 parbreak() })
test/out/meta/footnote-03.out view
@@ -66,10 +66,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  footnote(body: { text(body: [A, ]), -                   footnote(body: text(body: [B])) }), -  text(body: [, ]), -  footnote(body: text(body: [C])), -  parbreak() }+                 footnote(body: { text(body: [A, ]), +                                  footnote(body: text(body: [B])) }), +                 text(body: [, ]), +                 footnote(body: text(body: [C])), +                 parbreak() })
test/out/meta/footnote-04.out view
@@ -99,13 +99,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Beautiful footnotes. ]), -  footnote(body: text(body: [Wonderful, aren’t they?])), -  parbreak() }+                 parbreak(), +                 text(body: [Beautiful footnotes. ]), +                 footnote(body: text(body: [Wonderful, aren’t they?])), +                 parbreak() })
test/out/meta/footnote-break-00.out view
@@ -170,33 +170,33 @@ , Comment ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet,]), -  text(body: [+                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet,]), +                 text(body: [ ]), -  footnote(body: { text(body: [ ]), -                   text(body: [ A simple footnote.+                 footnote(body: { text(body: [ ]), +                                  text(body: [ A simple footnote. ]), -                   footnote(body: text(body: [Well, not that simple …])), -                   text(body: [ ]) }), -  text(body: [+                                  footnote(body: text(body: [Well, not that simple …])), +                                  text(body: [ ]) }), +                 text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), -  text(body: [+                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), +                 text(body: [ ]), -  footnote(body: { text(body: [Another footnote: ]), -                   text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi]) }), -  text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), -  text(body: [+                 footnote(body: { text(body: [Another footnote: ]), +                                  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi]) }), +                 text(body: [ ]), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), +                 text(body: [ ]), -  footnote(body: { text(body: [My fourth footnote: ]), -                   text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat]) }), -  text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), -  text(body: [+                 footnote(body: { text(body: [My fourth footnote: ]), +                                  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat]) }), +                 text(body: [ ]), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore]), +                 text(body: [ ]), -  footnote(body: text(body: [And a final footnote.])), -  text(body: [ ]) }+                 footnote(body: text(body: [And a final footnote.])), +                 text(body: [ ]) })
test/out/meta/footnote-container-00.out view
@@ -134,24 +134,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Read the docs ]), -  footnote(body: link(body: [https://typst.app/docs], -                      dest: "https://typst.app/docs")), -  text(body: [!+                 text(body: [Read the docs ]), +                 footnote(body: link(body: [https://typst.app/docs], +                                     dest: "https://typst.app/docs")), +                 text(body: [! ]), -  figure(body: image(path: "test/assets/files/graph.png", -                     width: 70%), -         caption: { text(body: [+                 figure(body: image(path: "test/assets/files/graph.png", +                                    width: 70%), +                        caption: { text(body: [ A graph ]), -                    footnote(body: { text(body: [A ]), -                                     emph(body: text(body: [graph])), -                                     text(body: [ is a structure with nodes and edges.]) }), -                    parbreak() }), -  text(body: [+                                   footnote(body: { text(body: [A ]), +                                                    emph(body: text(body: [graph])), +                                                    text(body: [ is a structure with nodes and edges.]) }), +                                   parbreak() }), +                 text(body: [ More ]), -  footnote(body: text(body: [just for …])), -  text(body: [ footnotes ]), -  footnote(body: text(body: [… testing. :)])), -  parbreak() }+                 footnote(body: text(body: [just for …])), +                 text(body: [ footnotes ]), +                 footnote(body: text(body: [… testing. :)])), +                 parbreak() })
test/out/meta/footnote-container-01.out view
@@ -167,36 +167,36 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  terms(children: ((text(body: [“Hello”]), -                    { text(body: [A word ]), -                      footnote(body: text(body: [Languages.])) }), -                   (text(body: [“123”]), -                    { text(body: [A number ]), -                      footnote(body: text(body: [Numbers.])), -                      text(body: [+                 parbreak(), +                 terms(children: ((text(body: [“Hello”]), +                                   { text(body: [A word ]), +                                     footnote(body: text(body: [Languages.])) }), +                                  (text(body: [“123”]), +                                   { text(body: [A number ]), +                                     footnote(body: text(body: [Numbers.])), +                                     text(body: [ ]) }))), -  list(children: ({ text(body: [“Hello” ]), -                    footnote(body: text(body: [Languages.])) }, -                  { text(body: [“123” ]), -                    footnote(body: text(body: [Numbers.])), -                    text(body: [+                 list(children: ({ text(body: [“Hello” ]), +                                   footnote(body: text(body: [Languages.])) }, +                                 { text(body: [“123” ]), +                                   footnote(body: text(body: [Numbers.])), +                                   text(body: [ ]) })), -  enum(children: ({ text(body: [“Hello” ]), -                    footnote(body: text(body: [Languages.])) }, -                  { text(body: [“123” ]), -                    footnote(body: text(body: [Numbers.])), -                    text(body: [+                 enum(children: ({ text(body: [“Hello” ]), +                                   footnote(body: text(body: [Languages.])) }, +                                 { text(body: [“123” ]), +                                   footnote(body: text(body: [Numbers.])), +                                   text(body: [ ]) })), -  table(children: (text(body: [Hello]), -                   { text(body: [A word ]), -                     footnote(body: text(body: [Languages.])) }, -                   text(body: [123]), -                   { text(body: [A number ]), -                     footnote(body: text(body: [Numbers.])) }), -        columns: 2), -  parbreak() }+                 table(children: (text(body: [Hello]), +                                  { text(body: [A word ]), +                                    footnote(body: text(body: [Languages.])) }, +                                  text(body: [123]), +                                  { text(body: [A number ]), +                                    footnote(body: text(body: [Numbers.])) }), +                       columns: 2), +                 parbreak() })
test/out/meta/footnote-invariant-00.out view
@@ -66,11 +66,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt]), -  parbreak(), -  text(body: [There ]), -  footnote(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), -  parbreak() }+                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt]), +                 parbreak(), +                 text(body: [There ]), +                 footnote(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut]), +                 parbreak() })
test/out/meta/heading-00.out view
@@ -48,15 +48,15 @@ , Heading 11 [ Text "Level" , Space , Text "11" ] ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  heading(body: text(body: [Level 1]), -          level: 1), -  heading(body: text(body: [Level 2]), -          level: 2), -  heading(body: text(body: [Level 3]), -          level: 3), -  heading(body: text(body: [Level 11]), -          level: 11) }+                 heading(body: text(body: [Level 1]), +                         level: 1), +                 heading(body: text(body: [Level 2]), +                         level: 2), +                 heading(body: text(body: [Level 3]), +                         level: 3), +                 heading(body: text(body: [Level 11]), +                         level: 11) })
test/out/meta/heading-01.out view
@@ -78,20 +78,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [ = Level 1+                 text(body: [ = Level 1 ]), -  heading(body: text(body: [Level 2]), -          level: 2), -  text(body: [+                 heading(body: text(body: [Level 2]), +                         level: 2), +                 text(body: [ ]), -  box(body: heading(body: text(body: [Level 3]), -                    level: 3)), -  parbreak(), -  text(body: [No = heading]), -  parbreak(), -  text(body: [= No heading]), -  parbreak() }+                 box(body: heading(body: text(body: [Level 3]), +                                   level: 3)), +                 parbreak(), +                 text(body: [No = heading]), +                 parbreak(), +                 text(body: [= No heading]), +                 parbreak() })
test/out/meta/heading-02.out view
@@ -65,16 +65,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  heading(body: { text(body: [This+                 heading(body: { text(body: [This is multiline.]), -                  parbreak() }, -          level: 1), -  heading(body: text(body: [This]), -          level: 1), -  text(body: [is not.]), -  parbreak() }+                                 parbreak() }, +                         level: 1), +                 heading(body: text(body: [This]), +                         level: 1), +                 text(body: [is not.]), +                 parbreak() })
test/out/meta/heading-03.out view
@@ -78,17 +78,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Heading]), -          level: 1), -  block(body: text(body: { text(body: [Heading 🌍]), -                           text(body: [!]) }, -                   fill: rgb(13%,61%,67%,100%), -                   font: "Roboto")), -  block(body: text(body: { text(body: [Heading]), -                           text(body: [!]) }, -                   fill: rgb(13%,61%,67%,100%), -                   font: "Roboto")), -  parbreak() }+                 parbreak(), +                 heading(body: text(body: [Heading]), +                         level: 1), +                 block(body: text(body: { text(body: [Heading 🌍]), +                                          text(body: [!]) }, +                                  fill: rgb(13%,61%,67%,100%), +                                  font: "Roboto")), +                 block(body: text(body: { text(body: [Heading]), +                                          text(body: [!]) }, +                                  fill: rgb(13%,61%,67%,100%), +                                  font: "Roboto")), +                 parbreak() })
test/out/meta/heading-04.out view
@@ -59,13 +59,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  heading(body: {  }, -          level: 1, -          numbering: "1."), -  text(body: [Not in heading+                 heading(body: {  }, +                         level: 1, +                         numbering: "1."), +                 text(body: [Not in heading =Nope]), -  parbreak() }+                 parbreak() })
@@ -119,23 +119,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  link(body: [https://example.com/], -       dest: "https://example.com/"), -  parbreak(), -  link(body: text(body: [Some text text text]), -       dest: "https://typst.org/"), -  parbreak(), -  text(body: [This link appears ]), -  link(body: text(body: [in the middle of]), -       dest: "https://google.com/"), -  text(body: [ a paragraph.]), -  parbreak(), -  text(body: [Contact ]), -  link(dest: "mailto:hi@typst.app"), -  text(body: [ or+                 link(body: [https://example.com/], +                      dest: "https://example.com/"), +                 parbreak(), +                 link(body: text(body: [Some text text text]), +                      dest: "https://typst.org/"), +                 parbreak(), +                 text(body: [This link appears ]), +                 link(body: text(body: [in the middle of]), +                      dest: "https://google.com/"), +                 text(body: [ a paragraph.]), +                 parbreak(), +                 text(body: [Contact ]), +                 link(dest: "mailto:hi@typst.app"), +                 text(body: [ or call ]), -  link(dest: "tel:123"), -  text(body: [ for more information.]), -  parbreak() }+                 link(dest: "tel:123"), +                 text(body: [ for more information.]), +                 parbreak() })
@@ -66,16 +66,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  underline(body: link(body: [https://a.b.?q=%10#.], -                       dest: "https://a.b.?q=%10#.")), -  text(body: [ ]), -  linebreak(), -  text(body: [Wahttp:]), -  text(body: [Nohttps://link ]), -  linebreak(), -  text(body: [Nohttp:]), -  parbreak() }+                 underline(body: link(body: [https://a.b.?q=%10#.], +                                      dest: "https://a.b.?q=%10#.")), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [Wahttp:]), +                 text(body: [Nohttps://link ]), +                 linebreak(), +                 text(body: [Nohttp:]), +                 parbreak() })
@@ -52,18 +52,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  link(body: [https://[::1]:8080/], -       dest: "https://[::1]:8080/"), -  text(body: [ ]), -  linebreak(), -  link(body: [https://example.com/(paren)], -       dest: "https://example.com/(paren)"), -  text(body: [ ]), -  linebreak(), -  link(body: [https://example.com/#(((nested)))], -       dest: "https://example.com/#(((nested)))"), -  text(body: [ ]), -  linebreak(), -  parbreak() }+                 link(body: [https://[::1]:8080/], +                      dest: "https://[::1]:8080/"), +                 text(body: [ ]), +                 linebreak(), +                 link(body: [https://example.com/(paren)], +                      dest: "https://example.com/(paren)"), +                 text(body: [ ]), +                 linebreak(), +                 link(body: [https://example.com/#(((nested)))], +                      dest: "https://example.com/#(((nested)))"), +                 text(body: [ ]), +                 linebreak(), +                 parbreak() })
@@ -51,13 +51,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  link(body: [https://example.com/], -       dest: "https://example.com/"), -  text(body: [ ]), -  linebreak(), -  link(body: [https://example.com/], -       dest: "https://example.com/"), -  text(body: [)]), -  parbreak() }+                 link(body: [https://example.com/], +                      dest: "https://example.com/"), +                 text(body: [ ]), +                 linebreak(), +                 link(body: [https://example.com/], +                      dest: "https://example.com/"), +                 text(body: [)]), +                 parbreak() })
@@ -93,12 +93,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ You could also make the ]), -  underline(body: text(body: link(body: text(body: [link look way more typical.]), -                                  dest: "https://html5zombo.com/"), -                       fill: rgb(15%,21%,38%,100%))), -  parbreak() }+                 underline(body: text(body: link(body: text(body: [link look way more typical.]), +                                                 dest: "https://html5zombo.com/"), +                                      fill: rgb(15%,21%,38%,100%))), +                 parbreak() })
@@ -88,16 +88,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ My cool ]), -  box(body: move(body: rotate(angle: 10.0deg, -                              body: scale(body: link(body: text(body: [LINK]), -                                                     dest: "https://typst.org/"), -                                          factor: 200%)), -                 dx: 0.7cm, -                 dy: 0.7cm)), -  parbreak() }+                 box(body: move(body: rotate(angle: 10.0deg, +                                             body: scale(body: link(body: text(body: [LINK]), +                                                                    dest: "https://typst.org/"), +                                                         factor: 200%)), +                                dx: 0.7cm, +                                dy: 0.7cm)), +                 parbreak() })
@@ -81,14 +81,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  link(body: block(body: { text(body: [+                 link(body: block(body: { text(body: [ My cool rhino ]), -                           box(body: move(body: image(path: "test/assets/files/rhino.png", -                                                      width: 1.0cm), -                                          dx: 10.0pt)), -                           parbreak() }), -       dest: "https://example.com/"), -  parbreak() }+                                          box(body: move(body: image(path: "test/assets/files/rhino.png", +                                                                     width: 1.0cm), +                                                         dx: 10.0pt)), +                                          parbreak() }), +                      dest: "https://example.com/"), +                 parbreak() })
@@ -64,10 +64,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  link(body: text(body: [Back to the start]), -       dest: (page: 1,-              x: 10.0pt,-              y: 20.0pt)), -  parbreak() }+                 link(body: text(body: [Back to the start]), +                      dest: (page: 1,+                             x: 10.0pt,+                             y: 20.0pt)), +                 parbreak() })
@@ -57,12 +57,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Text ]), -  <hey>, -  text(body: [+                 text(body: [Text ]), +                 <hey>, +                 text(body: [ ]), -  link(body: text(body: [Go to text.]), -       dest: ), -  parbreak() }+                 link(body: text(body: [Go to text.]), +                      dest: <hey>), +                 parbreak() })
test/out/meta/numbering-00.out view
@@ -77,87 +77,87 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  numbering(numbering: "*", -            numbers: (0)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (0, 0)), -  text(body: [ for ]), -  text(body: [0]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "*", -            numbers: (1)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (1, 1)), -  text(body: [ for ]), -  text(body: [1]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "*", -            numbers: (2)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (2, 2)), -  text(body: [ for ]), -  text(body: [2]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "*", -            numbers: (3)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (3, 3)), -  text(body: [ for ]), -  text(body: [3]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "*", -            numbers: (4)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (4, 4)), -  text(body: [ for ]), -  text(body: [4]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "*", -            numbers: (5)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (5, 5)), -  text(body: [ for ]), -  text(body: [5]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "*", -            numbers: (6)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (6, 6)), -  text(body: [ for ]), -  text(body: [6]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "*", -            numbers: (7)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (7, 7)), -  text(body: [ for ]), -  text(body: [7]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "*", -            numbers: (8)), -  text(body: [ and ]), -  numbering(numbering: "I.a", -            numbers: (8, 8)), -  text(body: [ for ]), -  text(body: [8]), -  text(body: [ ]), -  linebreak(), -  parbreak() }+                 numbering(numbering: "*", +                           numbers: (0)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (0, 0)), +                 text(body: [ for ]), +                 text(body: [0]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "*", +                           numbers: (1)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (1, 1)), +                 text(body: [ for ]), +                 text(body: [1]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "*", +                           numbers: (2)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (2, 2)), +                 text(body: [ for ]), +                 text(body: [2]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "*", +                           numbers: (3)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (3, 3)), +                 text(body: [ for ]), +                 text(body: [3]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "*", +                           numbers: (4)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (4, 4)), +                 text(body: [ for ]), +                 text(body: [4]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "*", +                           numbers: (5)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (5, 5)), +                 text(body: [ for ]), +                 text(body: [5]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "*", +                           numbers: (6)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (6, 6)), +                 text(body: [ for ]), +                 text(body: [6]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "*", +                           numbers: (7)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (7, 7)), +                 text(body: [ for ]), +                 text(body: [7]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "*", +                           numbers: (8)), +                 text(body: [ and ]), +                 numbering(numbering: "I.a", +                           numbers: (8, 8)), +                 text(body: [ for ]), +                 text(body: [8]), +                 text(body: [ ]), +                 linebreak(), +                 parbreak() })
test/out/meta/numbering-01.out view
@@ -134,84 +134,84 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  numbering(numbering: "A", -            numbers: (0)), -  text(body: [ for ]), -  text(body: [0]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (1)), -  text(body: [ for ]), -  text(body: [1]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (2)), -  text(body: [ for ]), -  text(body: [2]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (3)), -  text(body: [ for ]), -  text(body: [3]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 numbering(numbering: "A", +                           numbers: (0)), +                 text(body: [ for ]), +                 text(body: [0]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (1)), +                 text(body: [ for ]), +                 text(body: [1]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (2)), +                 text(body: [ for ]), +                 text(body: [2]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (3)), +                 text(body: [ for ]), +                 text(body: [3]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ … ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (26)), -  text(body: [ for ]), -  text(body: [26]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (27)), -  text(body: [ for ]), -  text(body: [27]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (28)), -  text(body: [ for ]), -  text(body: [28]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (29)), -  text(body: [ for ]), -  text(body: [29]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (26)), +                 text(body: [ for ]), +                 text(body: [26]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (27)), +                 text(body: [ for ]), +                 text(body: [27]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (28)), +                 text(body: [ for ]), +                 text(body: [28]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (29)), +                 text(body: [ for ]), +                 text(body: [29]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ … ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (702)), -  text(body: [ for ]), -  text(body: [702]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (703)), -  text(body: [ for ]), -  text(body: [703]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (704)), -  text(body: [ for ]), -  text(body: [704]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "A", -            numbers: (705)), -  text(body: [ for ]), -  text(body: [705]), -  text(body: [ ]), -  linebreak(), -  parbreak() }+                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (702)), +                 text(body: [ for ]), +                 text(body: [702]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (703)), +                 text(body: [ for ]), +                 text(body: [703]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (704)), +                 text(body: [ for ]), +                 text(body: [704]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "A", +                           numbers: (705)), +                 text(body: [ for ]), +                 text(body: [705]), +                 text(body: [ ]), +                 linebreak(), +                 parbreak() })
test/out/meta/numbering-02.out view
@@ -80,50 +80,50 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], lang: "he"), -  numbering(numbering: "א.", -            numbers: (9)), -  text(body: [ עבור ], -       lang: "he"), -  text(body: [9], lang: "he"), -  text(body: [ ], lang: "he"), -  linebreak(), -  numbering(numbering: "א.", -            numbers: (11)), -  text(body: [ עבור ], -       lang: "he"), -  text(body: [11], lang: "he"), -  text(body: [ ], lang: "he"), -  linebreak(), -  numbering(numbering: "א.", -            numbers: (13)), -  text(body: [ עבור ], -       lang: "he"), -  text(body: [13], lang: "he"), -  text(body: [ ], lang: "he"), -  linebreak(), -  numbering(numbering: "א.", -            numbers: (15)), -  text(body: [ עבור ], -       lang: "he"), -  text(body: [15], lang: "he"), -  text(body: [ ], lang: "he"), -  linebreak(), -  numbering(numbering: "א.", -            numbers: (17)), -  text(body: [ עבור ], -       lang: "he"), -  text(body: [17], lang: "he"), -  text(body: [ ], lang: "he"), -  linebreak(), -  numbering(numbering: "א.", -            numbers: (19)), -  text(body: [ עבור ], -       lang: "he"), -  text(body: [19], lang: "he"), -  text(body: [ ], lang: "he"), -  linebreak(), -  parbreak() }+                 numbering(numbering: "א.", +                           numbers: (9)), +                 text(body: [ עבור ], +                      lang: "he"), +                 text(body: [9], lang: "he"), +                 text(body: [ ], lang: "he"), +                 linebreak(), +                 numbering(numbering: "א.", +                           numbers: (11)), +                 text(body: [ עבור ], +                      lang: "he"), +                 text(body: [11], lang: "he"), +                 text(body: [ ], lang: "he"), +                 linebreak(), +                 numbering(numbering: "א.", +                           numbers: (13)), +                 text(body: [ עבור ], +                      lang: "he"), +                 text(body: [13], lang: "he"), +                 text(body: [ ], lang: "he"), +                 linebreak(), +                 numbering(numbering: "א.", +                           numbers: (15)), +                 text(body: [ עבור ], +                      lang: "he"), +                 text(body: [15], lang: "he"), +                 text(body: [ ], lang: "he"), +                 linebreak(), +                 numbering(numbering: "א.", +                           numbers: (17)), +                 text(body: [ עבור ], +                      lang: "he"), +                 text(body: [17], lang: "he"), +                 text(body: [ ], lang: "he"), +                 linebreak(), +                 numbering(numbering: "א.", +                           numbers: (19)), +                 text(body: [ עבור ], +                      lang: "he"), +                 text(body: [19], lang: "he"), +                 text(body: [ ], lang: "he"), +                 linebreak(), +                 parbreak() })
test/out/meta/numbering-03.out view
@@ -86,74 +86,74 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], lang: "zh"), -  numbering(numbering: "一", -            numbers: (9)), -  text(body: [ and ], -       lang: "zh"), -  numbering(numbering: "壹", -            numbers: (9)), -  text(body: [ for ], -       lang: "zh"), -  text(body: [9], lang: "zh"), -  text(body: [ ], lang: "zh"), -  linebreak(), -  numbering(numbering: "一", -            numbers: (11)), -  text(body: [ and ], -       lang: "zh"), -  numbering(numbering: "壹", -            numbers: (11)), -  text(body: [ for ], -       lang: "zh"), -  text(body: [11], lang: "zh"), -  text(body: [ ], lang: "zh"), -  linebreak(), -  numbering(numbering: "一", -            numbers: (13)), -  text(body: [ and ], -       lang: "zh"), -  numbering(numbering: "壹", -            numbers: (13)), -  text(body: [ for ], -       lang: "zh"), -  text(body: [13], lang: "zh"), -  text(body: [ ], lang: "zh"), -  linebreak(), -  numbering(numbering: "一", -            numbers: (15)), -  text(body: [ and ], -       lang: "zh"), -  numbering(numbering: "壹", -            numbers: (15)), -  text(body: [ for ], -       lang: "zh"), -  text(body: [15], lang: "zh"), -  text(body: [ ], lang: "zh"), -  linebreak(), -  numbering(numbering: "一", -            numbers: (17)), -  text(body: [ and ], -       lang: "zh"), -  numbering(numbering: "壹", -            numbers: (17)), -  text(body: [ for ], -       lang: "zh"), -  text(body: [17], lang: "zh"), -  text(body: [ ], lang: "zh"), -  linebreak(), -  numbering(numbering: "一", -            numbers: (19)), -  text(body: [ and ], -       lang: "zh"), -  numbering(numbering: "壹", -            numbers: (19)), -  text(body: [ for ], -       lang: "zh"), -  text(body: [19], lang: "zh"), -  text(body: [ ], lang: "zh"), -  linebreak(), -  parbreak() }+                 numbering(numbering: "一", +                           numbers: (9)), +                 text(body: [ and ], +                      lang: "zh"), +                 numbering(numbering: "壹", +                           numbers: (9)), +                 text(body: [ for ], +                      lang: "zh"), +                 text(body: [9], lang: "zh"), +                 text(body: [ ], lang: "zh"), +                 linebreak(), +                 numbering(numbering: "一", +                           numbers: (11)), +                 text(body: [ and ], +                      lang: "zh"), +                 numbering(numbering: "壹", +                           numbers: (11)), +                 text(body: [ for ], +                      lang: "zh"), +                 text(body: [11], lang: "zh"), +                 text(body: [ ], lang: "zh"), +                 linebreak(), +                 numbering(numbering: "一", +                           numbers: (13)), +                 text(body: [ and ], +                      lang: "zh"), +                 numbering(numbering: "壹", +                           numbers: (13)), +                 text(body: [ for ], +                      lang: "zh"), +                 text(body: [13], lang: "zh"), +                 text(body: [ ], lang: "zh"), +                 linebreak(), +                 numbering(numbering: "一", +                           numbers: (15)), +                 text(body: [ and ], +                      lang: "zh"), +                 numbering(numbering: "壹", +                           numbers: (15)), +                 text(body: [ for ], +                      lang: "zh"), +                 text(body: [15], lang: "zh"), +                 text(body: [ ], lang: "zh"), +                 linebreak(), +                 numbering(numbering: "一", +                           numbers: (17)), +                 text(body: [ and ], +                      lang: "zh"), +                 numbering(numbering: "壹", +                           numbers: (17)), +                 text(body: [ for ], +                      lang: "zh"), +                 text(body: [17], lang: "zh"), +                 text(body: [ ], lang: "zh"), +                 linebreak(), +                 numbering(numbering: "一", +                           numbers: (19)), +                 text(body: [ and ], +                      lang: "zh"), +                 numbering(numbering: "壹", +                           numbers: (19)), +                 text(body: [ for ], +                      lang: "zh"), +                 text(body: [19], lang: "zh"), +                 text(body: [ ], lang: "zh"), +                 linebreak(), +                 parbreak() })
test/out/meta/numbering-04.out view
@@ -150,108 +150,108 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  numbering(numbering: "イ", -            numbers: (0)), -  text(body: [ (or ]), -  numbering(numbering: "い", -            numbers: (0)), -  text(body: [) for ]), -  text(body: [0]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (1)), -  text(body: [ (or ]), -  numbering(numbering: "い", -            numbers: (1)), -  text(body: [) for ]), -  text(body: [1]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (2)), -  text(body: [ (or ]), -  numbering(numbering: "い", -            numbers: (2)), -  text(body: [) for ]), -  text(body: [2]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (3)), -  text(body: [ (or ]), -  numbering(numbering: "い", -            numbers: (3)), -  text(body: [) for ]), -  text(body: [3]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 numbering(numbering: "イ", +                           numbers: (0)), +                 text(body: [ (or ]), +                 numbering(numbering: "い", +                           numbers: (0)), +                 text(body: [) for ]), +                 text(body: [0]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (1)), +                 text(body: [ (or ]), +                 numbering(numbering: "い", +                           numbers: (1)), +                 text(body: [) for ]), +                 text(body: [1]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (2)), +                 text(body: [ (or ]), +                 numbering(numbering: "い", +                           numbers: (2)), +                 text(body: [) for ]), +                 text(body: [2]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (3)), +                 text(body: [ (or ]), +                 numbering(numbering: "い", +                           numbers: (3)), +                 text(body: [) for ]), +                 text(body: [3]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ … ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (47)), -  text(body: [ (or ]), -  numbering(numbering: "い", -            numbers: (47)), -  text(body: [) for ]), -  text(body: [47]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (48)), -  text(body: [ (or ]), -  numbering(numbering: "い", -            numbers: (48)), -  text(body: [) for ]), -  text(body: [48]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (49)), -  text(body: [ (or ]), -  numbering(numbering: "い", -            numbers: (49)), -  text(body: [) for ]), -  text(body: [49]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (50)), -  text(body: [ (or ]), -  numbering(numbering: "い", -            numbers: (50)), -  text(body: [) for ]), -  text(body: [50]), -  text(body: [ ]), -  linebreak(), -  text(body: [+                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (47)), +                 text(body: [ (or ]), +                 numbering(numbering: "い", +                           numbers: (47)), +                 text(body: [) for ]), +                 text(body: [47]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (48)), +                 text(body: [ (or ]), +                 numbering(numbering: "い", +                           numbers: (48)), +                 text(body: [) for ]), +                 text(body: [48]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (49)), +                 text(body: [ (or ]), +                 numbering(numbering: "い", +                           numbers: (49)), +                 text(body: [) for ]), +                 text(body: [49]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (50)), +                 text(body: [ (or ]), +                 numbering(numbering: "い", +                           numbers: (50)), +                 text(body: [) for ]), +                 text(body: [50]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [ … ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (2256)), -  text(body: [ for ]), -  text(body: [2256]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (2257)), -  text(body: [ for ]), -  text(body: [2257]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (2258)), -  text(body: [ for ]), -  text(body: [2258]), -  text(body: [ ]), -  linebreak(), -  numbering(numbering: "イ", -            numbers: (2259)), -  text(body: [ for ]), -  text(body: [2259]), -  text(body: [ ]), -  linebreak(), -  parbreak() }+                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (2256)), +                 text(body: [ for ]), +                 text(body: [2256]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (2257)), +                 text(body: [ for ]), +                 text(body: [2257]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (2258)), +                 text(body: [ for ]), +                 text(body: [2258]), +                 text(body: [ ]), +                 linebreak(), +                 numbering(numbering: "イ", +                           numbers: (2259)), +                 text(body: [ for ]), +                 text(body: [2259]), +                 text(body: [ ]), +                 linebreak(), +                 parbreak() })
test/out/meta/outline-00.out view
@@ -165,64 +165,64 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  outline(), -  parbreak(), -  heading(body: text(body: [Einleitung]), -          level: 1, -          numbering: "(1/a)"), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), -  parbreak(), -  heading(body: text(body: [Analyse]), -          level: 1, -          numbering: "(1/a)"), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), -  parbreak(), -  text(body: [+                 parbreak(), +                 outline(), +                 parbreak(), +                 heading(body: text(body: [Einleitung]), +                         level: 1, +                         numbering: "(1/a)"), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor]), +                 parbreak(), +                 heading(body: text(body: [Analyse]), +                         level: 1, +                         numbering: "(1/a)"), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  heading(body: text(body: [Methodik]), -          level: 2, -          numbering: "(1/a)", -          outlined: false), -  text(body: [Lorem ipsum dolor sit amet, consectetur]), -  parbreak(), -  parbreak(), -  heading(body: text(body: [Verarbeitung]), -          level: 2, -          numbering: "(1/a)", -          outlined: false), -  text(body: [Lorem ipsum dolor sit]), -  parbreak(), -  heading(body: text(body: [Programmierung]), -          level: 2, -          numbering: "(1/a)", -          outlined: false), -  raw(block: true, -      lang: "rust", -      text: "fn main() {\n  panic!(\"in the disco\");\n}\n"), -  parbreak(), -  heading(body: text(body: [Deep Stuff]), -          level: 4, -          numbering: "(1/a)", -          outlined: false), -  text(body: [Ok …]), -  parbreak(), -  parbreak(), -  heading(body: { text(body: text(body: [Zusammen]), -                       color: rgb(0%,45%,85%,100%)), -                  text(body: [fassung]) }, -          level: 1, -          numbering: "(I)", -          outlined: false), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), -  parbreak() }+                 heading(body: text(body: [Methodik]), +                         level: 2, +                         numbering: "(1/a)", +                         outlined: false), +                 text(body: [Lorem ipsum dolor sit amet, consectetur]), +                 parbreak(), +                 parbreak(), +                 heading(body: text(body: [Verarbeitung]), +                         level: 2, +                         numbering: "(1/a)", +                         outlined: false), +                 text(body: [Lorem ipsum dolor sit]), +                 parbreak(), +                 heading(body: text(body: [Programmierung]), +                         level: 2, +                         numbering: "(1/a)", +                         outlined: false), +                 raw(block: true, +                     lang: "rust", +                     text: "fn main() {\n  panic!(\"in the disco\");\n}\n"), +                 parbreak(), +                 heading(body: text(body: [Deep Stuff]), +                         level: 4, +                         numbering: "(1/a)", +                         outlined: false), +                 text(body: [Ok …]), +                 parbreak(), +                 parbreak(), +                 heading(body: { text(body: text(body: [Zusammen]), +                                      color: rgb(0%,45%,85%,100%)), +                                 text(body: [fassung]) }, +                         level: 1, +                         numbering: "(I)", +                         outlined: false), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do]), +                 parbreak() })
test/out/meta/query-before-after-01.out view
@@ -161,27 +161,27 @@ , ParBreak ] --- evaluated ----{ parbreak(), -  parbreak(), -  parbreak(), -  locate(func: ), -  parbreak(), -  heading(body: [A], -          numbering: "1.", -          outlined: false), -  text(body: [+document(body: { parbreak(), +                 parbreak(), +                 parbreak(), +                 locate(func: ), +                 parbreak(), +                 heading(body: [A], +                         numbering: "1.", +                         outlined: false), +                 text(body: [ ]), -  heading(body: [B], -          numbering: "1.", -          outlined: true), -  text(body: [+                 heading(body: [B], +                         numbering: "1.", +                         outlined: true), +                 text(body: [ ]), -  heading(body: [C], -          numbering: "1.", -          outlined: true), -  text(body: [+                 heading(body: [C], +                         numbering: "1.", +                         outlined: true), +                 text(body: [ ]), -  heading(body: [D], -          numbering: "1.", -          outlined: false), -  parbreak() }+                 heading(body: [D], +                         numbering: "1.", +                         outlined: false), +                 parbreak() })
test/out/meta/query-figure-00.out view
@@ -233,27 +233,27 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ ]), -  parbreak(), -  heading(body: text(body: [List of Figures]), -          level: 1), -  locate(func: ), -  parbreak(), -  figure(body: image(path: "test/assets/files/glacier.jpg"), -         caption: text(body: [Glacier melting]), -         numbering: "I"), -  parbreak(), -  figure(body: rect(body: text(body: [Just some stand-in text])), -         caption: text(body: [Stand-in text]), -         kind: , -         numbering: "I", -         supplement: "Figure"), -  parbreak(), -  figure(body: image(path: "test/assets/files/tiger.jpg"), -         caption: text(body: [Tiger world]), -         numbering: "I"), -  parbreak() }+                 parbreak(), +                 heading(body: text(body: [List of Figures]), +                         level: 1), +                 locate(func: ), +                 parbreak(), +                 figure(body: image(path: "test/assets/files/glacier.jpg"), +                        caption: text(body: [Glacier melting]), +                        numbering: "I"), +                 parbreak(), +                 figure(body: rect(body: text(body: [Just some stand-in text])), +                        caption: text(body: [Stand-in text]), +                        kind: , +                        numbering: "I", +                        supplement: "Figure"), +                 parbreak(), +                 figure(body: image(path: "test/assets/files/tiger.jpg"), +                        caption: text(body: [Tiger world]), +                        numbering: "I"), +                 parbreak() })
test/out/meta/query-header-00.out view
@@ -173,20 +173,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  outline(), -  parbreak(), -  heading(body: text(body: [Introduction]), -          level: 1), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo]), -  parbreak(), -  heading(body: text(body: [Background]), -          level: 1), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo]), -  parbreak(), -  heading(body: text(body: [Approach]), -          level: 1), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in]), -  parbreak() }+                 parbreak(), +                 outline(), +                 parbreak(), +                 heading(body: text(body: [Introduction]), +                         level: 1), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo]), +                 parbreak(), +                 heading(body: text(body: [Background]), +                         level: 1), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo]), +                 parbreak(), +                 heading(body: text(body: [Approach]), +                         level: 1), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in]), +                 parbreak() })
test/out/meta/ref-00.out view
@@ -75,26 +75,26 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  heading(body: text(body: [Introduction]), -          level: 1, -          numbering: "1."), -  <intro>, -  text(body: [+                 parbreak(), +                 heading(body: text(body: [Introduction]), +                         level: 1, +                         numbering: "1."), +                 <intro>, +                 text(body: [ See ]), -  ref(supplement: auto, -      target: ), -  text(body: [.]), -  parbreak(), -  heading(body: text(body: [Setup]), -          level: 2, -          numbering: "1."), -  <setup>, -  text(body: [+                 ref(supplement: auto, +                     target: <setup>), +                 text(body: [.]), +                 parbreak(), +                 heading(body: text(body: [Setup]), +                         level: 2, +                         numbering: "1."), +                 <setup>, +                 text(body: [ As seen in ]), -  ref(supplement: auto, -      target: ), -  text(body: [, we proceed.]), -  parbreak() }+                 ref(supplement: auto, +                     target: <intro>), +                 text(body: [, we proceed.]), +                 parbreak() })
test/out/regression/issue1.out view
@@ -63,9 +63,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [(3, 4, 5)]), -  parbreak() }+                 text(body: [(3, 4, 5)]), +                 parbreak() })
test/out/regression/issue12.out view
@@ -50,12 +50,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ he’]), -  strong(body: text(body: [llo World])), -  parbreak(), -  text(body: [l’]), -  strong(body: text(body: [exactitude])), -  parbreak(), -  text(body: [a*b_c_e]), -  parbreak() }+                 strong(body: text(body: [llo World])), +                 parbreak(), +                 text(body: [l’]), +                 strong(body: text(body: [exactitude])), +                 parbreak(), +                 text(body: [a*b_c_e]), +                 parbreak() })
test/out/regression/issue15.out view
@@ -57,14 +57,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: text(body: […]), -                numbering: none), -  text(body: [+                 math.equation(block: false, +                               body: text(body: […]), +                               numbering: none), +                 text(body: [ ]), -  math.equation(block: false, -                body: text(body: [“]), -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: text(body: [“]), +                               numbering: none), +                 parbreak() })
+ test/out/regression/issue17.out view
@@ -0,0 +1,227 @@+--- parse tree ---+[ Code+    "test/typ/regression/issue17.typ"+    ( line 1 , column 2 )+    (Let+       (BasicBind (Just (Identifier "test")))+       (FuncExpr+          [ NormalParam (Identifier "x") , NormalParam (Identifier "y") ]+          (Block+             (CodeBlock+                [ If+                    [ ( Equals (Ident (Identifier "x")) (Ident (Identifier "y"))+                      , Block (Content [ Text "\9989" ])+                      )+                    , ( Literal (Boolean True)+                      , Block+                          (Content+                             [ Text "\10060"+                             , Text "("+                             , Code+                                 "test/typ/regression/issue17.typ"+                                 ( line 1 , column 47 )+                                 (FuncCall+                                    (Ident (Identifier "repr"))+                                    [ NormalArg (Ident (Identifier "x")) ])+                             , Space+                             , Text "/"+                             , Text "="+                             , Space+                             , Code+                                 "test/typ/regression/issue17.typ"+                                 ( line 1 , column 59 )+                                 (FuncCall+                                    (Ident (Identifier "repr"))+                                    [ NormalArg (Ident (Identifier "y")) ])+                             , Text ")"+                             ])+                      )+                    ]+                ]))))+, SoftBreak+, Equation+    False+    [ MAttach+        Nothing+        (Just (MGroup Nothing Nothing [ Text "b" ]))+        (MGroup+           Nothing+           Nothing+           [ Text "n" , MGroup (Just "(") (Just ")") [ Text "a" ] ])+    ]+, ParBreak+, Equation+    False+    [ MGroup+        Nothing+        Nothing+        [ MAttach (Just (Text "1")) Nothing (Text "a")+        , MGroup (Just "(") (Just ")") [ Text "x" ]+        ]+    ]+, ParBreak+, Equation+    False+    [ MAttach+        (Just+           (MGroup+              Nothing+              Nothing+              [ Text "f" , MGroup (Just "(") (Just ")") [ Text "x" ] ]))+        Nothing+        (Text "a")+    ]+, ParBreak+, Equation+    False+    [ MAttach+        (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ]))+        (Just (Text "3"))+        (Code+           "test/typ/regression/issue17.typ"+           ( line 8 , column 2 )+           (Ident (Identifier "sum")))+    ]+, ParBreak+, Equation+    False+    [ MAttach+        (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ]))+        (Just (Text "3"))+        (Code+           "test/typ/regression/issue17.typ"+           ( line 10 , column 2 )+           (Ident (Identifier "sum")))+    ]+, ParBreak+, Equation+    False+    [ MAttach+        (Just (Text "3"))+        (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ]))+        (Code+           "test/typ/regression/issue17.typ"+           ( line 12 , column 2 )+           (Ident (Identifier "sum")))+    ]+, ParBreak+, Equation+    False+    [ MAttach+        (Just (Text "3"))+        (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ]))+        (Code+           "test/typ/regression/issue17.typ"+           ( line 14 , column 2 )+           (Ident (Identifier "sum")))+    ]+, ParBreak+, Equation+    False+    [ MAttach+        (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ]))+        (Just+           (Code+              "test/typ/regression/issue17.typ"+              ( line 16 , column 12 )+              (Ident (Identifier "pi"))))+        (Code+           "test/typ/regression/issue17.typ"+           ( line 16 , column 2 )+           (Ident (Identifier "sum")))+    ]+, ParBreak+, Equation+    False+    [ MAttach+        (Just (MGroup Nothing Nothing [ Text "j" , Text "=" , Text "0" ]))+        (Just+           (Code+              "test/typ/regression/issue17.typ"+              ( line 18 , column 6 )+              (Ident (Identifier "pi"))))+        (Code+           "test/typ/regression/issue17.typ"+           ( line 18 , column 2 )+           (Ident (Identifier "sum")))+    ]+, ParBreak+]+--- evaluated ---+document(body: { text(body: [+]), +                 math.equation(block: false, +                               body: math.attach(b: none, +                                                 base: { text(body: [n]), +                                                         math.lr(body: ({ [(], +                                                                          text(body: [a]), +                                                                          [)] })) }, +                                                 t: text(body: [b])), +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: { math.attach(b: text(body: [1]), +                                                   base: text(body: [a]), +                                                   t: none), +                                       math.lr(body: ({ [(], +                                                        text(body: [x]), +                                                        [)] })) }, +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: math.attach(b: { text(body: [f]), +                                                      math.lr(body: ({ [(], +                                                                       text(body: [x]), +                                                                       [)] })) }, +                                                 base: text(body: [a]), +                                                 t: none), +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: math.attach(b: { text(body: [j]), +                                                      text(body: [=]), +                                                      text(body: [0]) }, +                                                 base: text(body: [∑]), +                                                 t: text(body: [3])), +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: math.attach(b: { text(body: [j]), +                                                      text(body: [=]), +                                                      text(body: [0]) }, +                                                 base: text(body: [∑]), +                                                 t: text(body: [3])), +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: math.attach(b: text(body: [3]), +                                                 base: text(body: [∑]), +                                                 t: { text(body: [j]), +                                                      text(body: [=]), +                                                      text(body: [0]) }), +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: math.attach(b: text(body: [3]), +                                                 base: text(body: [∑]), +                                                 t: { text(body: [j]), +                                                      text(body: [=]), +                                                      text(body: [0]) }), +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: math.attach(b: { text(body: [j]), +                                                      text(body: [=]), +                                                      text(body: [0]) }, +                                                 base: text(body: [∑]), +                                                 t: text(body: [π])), +                               numbering: none), +                 parbreak(), +                 math.equation(block: false, +                               body: math.attach(b: { text(body: [j]), +                                                      text(body: [=]), +                                                      text(body: [0]) }, +                                                 base: text(body: [∑]), +                                                 t: text(body: [π])), +                               numbering: none), +                 parbreak() })
test/out/regression/issue2.out view
@@ -63,10 +63,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: false, -                body: math.lr(body: ({ text(body: [α]), -                                       text(body: [β]) })), -                numbering: none), -  parbreak() }+                 math.equation(block: false, +                               body: math.lr(body: ({ text(body: [α]), +                                                      text(body: [β]) })), +                               numbering: none), +                 parbreak() })
test/out/regression/issue3.out view
@@ -66,9 +66,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [(a: 1, b: 2, c: 3)]), -  parbreak() }+                 text(body: [(a: 1, b: 2, c: 3)]), +                 parbreak() })
test/out/regression/issue5.out view
@@ -43,10 +43,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: { text(body: [3]), -                        text(body: [!]) }, -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: { text(body: [3]), +                                       text(body: [!]) }, +                               numbering: none), +                 parbreak() })
test/out/regression/issue6.out view
@@ -55,11 +55,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  math.equation(block: true, -                body: math.equation(block: false, -                                    body: text(body: [3]), -                                    numbering: none), -                numbering: none), -  parbreak() }+                 math.equation(block: true, +                               body: math.equation(block: false, +                                                   body: text(body: [3]), +                                                   numbering: none), +                               numbering: none), +                 parbreak() })
test/out/text/baseline-00.out view
@@ -160,34 +160,34 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Hi ]), -  text(body: text(body: [You]), -       size: 1.5em), -  text(body: [, ]), -  text(body: text(body: [how are you?]), -       size: 0.75em), -  parbreak(), -  text(body: [Our cockatoo was one of the+                 text(body: text(body: [You]), +                      size: 1.5em), +                 text(body: [, ]), +                 text(body: text(body: [how are you?]), +                      size: 0.75em), +                 parbreak(), +                 text(body: [Our cockatoo was one of the ]), -  text(baseline: -0.2em, -       body: { box(body: circle(radius: 2.0pt)), -               text(body: [ first]) }), -  text(body: [+                 text(baseline: -0.2em, +                      body: { box(body: circle(radius: 2.0pt)), +                              text(body: [ first]) }), +                 text(body: [ ]), -  text(baseline: 0.2em, -       body: { text(body: [birds ]), -               box(body: circle(radius: 2.0pt)) }), -  text(body: [+                 text(baseline: 0.2em, +                      body: { text(body: [birds ]), +                              box(body: circle(radius: 2.0pt)) }), +                 text(body: [ that ever learned to mimic a human voice.]), -  parbreak(), -  text(body: [—+                 parbreak(), +                 text(body: [— Hey ]), -  box(baseline: 40%, -      body: image(path: "test/assets/files/tiger.jpg", -                  width: 1.5cm)), -  text(body: [ there!]), -  parbreak() }+                 box(baseline: 40%, +                     body: image(path: "test/assets/files/tiger.jpg", +                                 width: 1.5cm)), +                 text(body: [ there!]), +                 parbreak() })
test/out/text/case-00.out view
@@ -84,15 +84,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  text(body: [+                 text(body: [✅]), +                 text(body: [ ]), -  text(body: [✅]), -  parbreak() }+                 text(body: [✅]), +                 parbreak() })
test/out/text/chinese-00.out view
@@ -62,12 +62,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [是美国广播公司电视剧《迷失》第3季的第22和23集,也是全剧的第71集和72集+                 parbreak(), +                 text(body: [是美国广播公司电视剧《迷失》第3季的第22和23集,也是全剧的第71集和72集 由执行制作人戴蒙·林道夫和卡尔顿·库斯编剧,导演则是另一名执行制作人杰克·本德 节目于2007年5月23日在美国和加拿大首播,共计吸引了1400万美国观众收看 本集加上插播广告一共也持续有两个小时], -       font: "Noto Serif CJK SC"), -  parbreak() }+                      font: "Noto Serif CJK SC"), +                 parbreak() })
test/out/text/copy-paste-00.out view
@@ -61,11 +61,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ The after fira 🏳️‍🌈!]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ مرحبًا], -       font: "Noto Sans Arabic", -       lang: "ar"), -  parbreak() }+                      font: "Noto Sans Arabic", +                      lang: "ar"), +                 parbreak() })
test/out/text/deco-00.out view
@@ -151,20 +151,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  strike(body: text(body: [Statements dreamt up by the utterly deranged.])), -  parbreak(), -  underline(body: text(body: [Further below.]), -            offset: 5.0pt), -  parbreak(), -  underline(body: text(body: [Critical information is conveyed here.]), -            evade: false, -            stroke: rgb(98%,0%,18%,100%)), -  parbreak(), -  text(body: underline(body: text(body: [Change with the wind.])), -       fill: rgb(98%,0%,18%,100%)), -  parbreak(), -  overline(body: underline(body: text(body: [Running amongst the wolves.]))), -  parbreak() }+                 parbreak(), +                 strike(body: text(body: [Statements dreamt up by the utterly deranged.])), +                 parbreak(), +                 underline(body: text(body: [Further below.]), +                           offset: 5.0pt), +                 parbreak(), +                 underline(body: text(body: [Critical information is conveyed here.]), +                           evade: false, +                           stroke: rgb(98%,0%,18%,100%)), +                 parbreak(), +                 text(body: underline(body: text(body: [Change with the wind.])), +                      fill: rgb(98%,0%,18%,100%)), +                 parbreak(), +                 overline(body: underline(body: text(body: [Running amongst the wolves.]))), +                 parbreak() })
test/out/text/deco-01.out view
@@ -105,21 +105,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Sometimes, we work ]), -  strike(body: text(body: [in secret]), -         extent: 5.0e-2em, -         stroke: 10.0pt), -  text(body: [.+                 parbreak(), +                 text(body: [Sometimes, we work ]), +                 strike(body: text(body: [in secret]), +                        extent: 5.0e-2em, +                        stroke: 10.0pt), +                 text(body: [. There might be ]), -  strike(body: text(body: [redacted]), -         extent: 5.0e-2em, -         stroke: (thickness: 10.0pt,-                  color: rgb(67%,80%,93%,53%))), -  text(body: [ things.+                 strike(body: text(body: [redacted]), +                        extent: 5.0e-2em, +                        stroke: (thickness: 10.0pt,+                                 color: rgb(67%,80%,93%,53%))), +                 text(body: [ things. underline()]), -  parbreak() }+                 parbreak() })
test/out/text/deco-02.out view
@@ -64,12 +64,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  underline(body: text(body: text(body: [DANGER!]), -                       color: rgb(100%,25%,21%,100%)), -            offset: 2.0pt, -            stroke: 2.0pt), -  parbreak() }+                 underline(body: text(body: text(body: [DANGER!]), +                                      color: rgb(100%,25%,21%,100%)), +                           offset: 2.0pt, +                           stroke: 2.0pt), +                 parbreak() })
test/out/text/edge-00.out view
@@ -152,182 +152,182 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  parbreak(), -  rect(body: { text(body: [+                 parbreak(), +                 parbreak(), +                 rect(body: { text(body: [ ], -                    size: 8.0pt), -               text(body: [+                                   size: 8.0pt), +                              text(body: [ From ], -                    bottom-edge: "descender", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "ascender"), -               text(body: [ascender], -                    bottom-edge: "descender", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "ascender"), -               text(body: [ to ], -                    bottom-edge: "descender", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "ascender"), -               text(body: [descender], -                    bottom-edge: "descender", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "ascender"), -               parbreak() }, -       fill: rgb(18%,80%,25%,100%), -       inset: 0.0pt), -  text(body: [+                                   bottom-edge: "descender", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "ascender"), +                              text(body: [ascender], +                                   bottom-edge: "descender", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "ascender"), +                              text(body: [ to ], +                                   bottom-edge: "descender", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "ascender"), +                              text(body: [descender], +                                   bottom-edge: "descender", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "ascender"), +                              parbreak() }, +                      fill: rgb(18%,80%,25%,100%), +                      inset: 0.0pt), +                 text(body: [ ], size: 8.0pt), -  rect(body: { text(body: [+                 rect(body: { text(body: [ ], -                    size: 8.0pt), -               text(body: [+                                   size: 8.0pt), +                              text(body: [ From ], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "ascender"), -               text(body: [ascender], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "ascender"), -               text(body: [ to ], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "ascender"), -               text(body: [baseline], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "ascender"), -               parbreak() }, -       fill: rgb(18%,80%,25%,100%), -       inset: 0.0pt), -  text(body: [+                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "ascender"), +                              text(body: [ascender], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "ascender"), +                              text(body: [ to ], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "ascender"), +                              text(body: [baseline], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "ascender"), +                              parbreak() }, +                      fill: rgb(18%,80%,25%,100%), +                      inset: 0.0pt), +                 text(body: [ ], size: 8.0pt), -  rect(body: { text(body: [+                 rect(body: { text(body: [ ], -                    size: 8.0pt), -               text(body: [+                                   size: 8.0pt), +                              text(body: [ From ], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "cap-height"), -               text(body: [cap-height], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "cap-height"), -               text(body: [ to ], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "cap-height"), -               text(body: [baseline], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "cap-height"), -               parbreak() }, -       fill: rgb(18%,80%,25%,100%), -       inset: 0.0pt), -  text(body: [+                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "cap-height"), +                              text(body: [cap-height], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "cap-height"), +                              text(body: [ to ], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "cap-height"), +                              text(body: [baseline], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "cap-height"), +                              parbreak() }, +                      fill: rgb(18%,80%,25%,100%), +                      inset: 0.0pt), +                 text(body: [ ], size: 8.0pt), -  rect(body: { text(body: [+                 rect(body: { text(body: [ ], -                    size: 8.0pt), -               text(body: [+                                   size: 8.0pt), +                              text(body: [ From ], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "x-height"), -               text(body: [x-height], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "x-height"), -               text(body: [ to ], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "x-height"), -               text(body: [baseline], -                    bottom-edge: "baseline", -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: "x-height"), -               parbreak() }, -       fill: rgb(18%,80%,25%,100%), -       inset: 0.0pt), -  text(body: [+                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "x-height"), +                              text(body: [x-height], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "x-height"), +                              text(body: [ to ], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "x-height"), +                              text(body: [baseline], +                                   bottom-edge: "baseline", +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: "x-height"), +                              parbreak() }, +                      fill: rgb(18%,80%,25%,100%), +                      inset: 0.0pt), +                 text(body: [ ], size: 8.0pt), -  rect(body: { text(body: [+                 rect(body: { text(body: [ ], -                    size: 8.0pt), -               text(body: [+                                   size: 8.0pt), +                              text(body: [ From ], -                    bottom-edge: -2.0pt, -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: 4.0pt), -               text(body: [4.0pt], -                    bottom-edge: -2.0pt, -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: 4.0pt), -               text(body: [ to ], -                    bottom-edge: -2.0pt, -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: 4.0pt), -               text(body: [-2.0pt], -                    bottom-edge: -2.0pt, -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: 4.0pt), -               parbreak() }, -       fill: rgb(18%,80%,25%,100%), -       inset: 0.0pt), -  text(body: [+                                   bottom-edge: -2.0pt, +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: 4.0pt), +                              text(body: [4.0pt], +                                   bottom-edge: -2.0pt, +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: 4.0pt), +                              text(body: [ to ], +                                   bottom-edge: -2.0pt, +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: 4.0pt), +                              text(body: [-2.0pt], +                                   bottom-edge: -2.0pt, +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: 4.0pt), +                              parbreak() }, +                      fill: rgb(18%,80%,25%,100%), +                      inset: 0.0pt), +                 text(body: [ ], size: 8.0pt), -  rect(body: { text(body: [+                 rect(body: { text(body: [ ], -                    size: 8.0pt), -               text(body: [+                                   size: 8.0pt), +                              text(body: [ From ], -                    bottom-edge: -0.15em, -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: 1.0pt + 0.3em), -               text(body: [1.0pt + 0.3em], -                    bottom-edge: -0.15em, -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: 1.0pt + 0.3em), -               text(body: [ to ], -                    bottom-edge: -0.15em, -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: 1.0pt + 0.3em), -               text(body: [-0.15em], -                    bottom-edge: -0.15em, -                    font: "IBM Plex Mono", -                    size: 8.0pt, -                    top-edge: 1.0pt + 0.3em), -               parbreak() }, -       fill: rgb(18%,80%,25%,100%), -       inset: 0.0pt), -  parbreak() }+                                   bottom-edge: -0.15em, +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: 1.0pt + 0.3em), +                              text(body: [1.0pt + 0.3em], +                                   bottom-edge: -0.15em, +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: 1.0pt + 0.3em), +                              text(body: [ to ], +                                   bottom-edge: -0.15em, +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: 1.0pt + 0.3em), +                              text(body: [-0.15em], +                                   bottom-edge: -0.15em, +                                   font: "IBM Plex Mono", +                                   size: 8.0pt, +                                   top-edge: 1.0pt + 0.3em), +                              parbreak() }, +                      fill: rgb(18%,80%,25%,100%), +                      inset: 0.0pt), +                 parbreak() })
test/out/text/em-00.out view
@@ -114,37 +114,37 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ A ], -       size: 5.0pt), -  text(body: [+                      size: 5.0pt), +                 text(body: [ ], size: 5.0pt), -  text(body: [+                 text(body: [ B ], -       size: 2.0em), -  text(body: [ ], size: 2.0em), -  text(body: [+                      size: 2.0em), +                 text(body: [ ], size: 2.0em), +                 text(body: [ ], size: 2.0em), -  text(body: [+                 text(body: [ C ], -       size: 1.5em + 1.0pt), -  text(body: [ ], -       size: 1.5em + 1.0pt), -  text(body: text(body: [D], -                  size: 1.5em + 1.0pt), -       size: 2.0em), -  text(body: [ ], -       size: 1.5em + 1.0pt), -  text(body: [ E ], -       size: 1.5em + 1.0pt), -  text(body: [ ], -       size: 1.5em + 1.0pt), -  text(body: [+                      size: 1.5em + 1.0pt), +                 text(body: [ ], +                      size: 1.5em + 1.0pt), +                 text(body: text(body: [D], +                                 size: 1.5em + 1.0pt), +                      size: 2.0em), +                 text(body: [ ], +                      size: 1.5em + 1.0pt), +                 text(body: [ E ], +                      size: 1.5em + 1.0pt), +                 text(body: [ ], +                      size: 1.5em + 1.0pt), +                 text(body: [ F ], -       size: 1.5em + 1.0pt), -  text(body: [+                      size: 1.5em + 1.0pt), +                 text(body: [ G ], -       size: 1.5em + 1.0pt), -  parbreak() }+                      size: 1.5em + 1.0pt), +                 parbreak() })
test/out/text/em-01.out view
@@ -103,18 +103,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], size: 5.0pt), -  text(body: [+                 text(body: [ ], size: 2.0em), -  parbreak(), -  parbreak(), -  stack(children: (square(fill: rgb(100%,25%,21%,100%), -                          size: (2.0em + 8.0pt) + -3.0pt), -                   square(fill: rgb(100%,25%,21%,100%), -                          size: 25.0pt)), -        dir: ltr, -        spacing: 1.0fr), -  parbreak() }+                 parbreak(), +                 parbreak(), +                 stack(children: (square(fill: rgb(100%,25%,21%,100%), +                                         size: (2.0em + 8.0pt) + -3.0pt), +                                  square(fill: rgb(100%,25%,21%,100%), +                                         size: 25.0pt)), +                       dir: ltr, +                       spacing: 1.0fr), +                 parbreak() })
test/out/text/emoji-00.out view
@@ -53,13 +53,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [👩‍👩‍👦]), -  parbreak(), -  text(body: [🏳️‍🌈]), -  parbreak(), -  text(body: [👍🏿]), -  parbreak(), -  text(body: [1️⃣]), -  parbreak() }+                 text(body: [👩‍👩‍👦]), +                 parbreak(), +                 text(body: [🏳️‍🌈]), +                 parbreak(), +                 text(body: [👍🏿]), +                 parbreak(), +                 text(body: [1️⃣]), +                 parbreak() })
test/out/text/emoji-01.out view
@@ -44,7 +44,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [🏞‍🌋]), -  parbreak() }+                 text(body: [🏞‍🌋]), +                 parbreak() })
test/out/text/emphasis-00.out view
@@ -70,15 +70,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  emph(body: { text(body: [Emphasized and ]), -               strong(body: text(body: [strong])), -               text(body: [ words!]) }), -  parbreak(), -  text(body: [hello_world Nutzer*innen]), -  parbreak(), -  emph(body: { text(body: [Still ]), -               parbreak(), -               text(body: [ emphasized.]) }), -  parbreak() }+                 emph(body: { text(body: [Emphasized and ]), +                              strong(body: text(body: [strong])), +                              text(body: [ words!]) }), +                 parbreak(), +                 text(body: [hello_world Nutzer*innen]), +                 parbreak(), +                 emph(body: { text(body: [Still ]), +                              parbreak(), +                              text(body: [ emphasized.]) }), +                 parbreak() })
test/out/text/emphasis-01.out view
@@ -58,11 +58,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [P]), -  strong(body: text(body: [art])), -  text(body: [ly em]), -  emph(body: text(body: [phas])), -  text(body: [ized.]), -  parbreak() }+                 text(body: [P]), +                 strong(body: text(body: [art])), +                 text(body: [ly em]), +                 emph(body: text(body: [phas])), +                 text(body: [ized.]), +                 parbreak() })
test/out/text/emphasis-02.out view
@@ -71,21 +71,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Normal]), -  parbreak(), -  text(body: [+                 text(body: [Normal]), +                 parbreak(), +                 text(body: [ ]), -  strong(body: text(body: [Bold]), -         delta: 300), -  parbreak(), -  text(body: [+                 strong(body: text(body: [Bold]), +                        delta: 300), +                 parbreak(), +                 text(body: [ ]), -  strong(body: text(body: [Medium]), -         delta: 150), -  text(body: [ and ]), -  strong(body: strong(body: text(body: [Bold]), -                      delta: 150), -         delta: 150), -  parbreak() }+                 strong(body: text(body: [Medium]), +                        delta: 150), +                 text(body: [ and ]), +                 strong(body: strong(body: text(body: [Bold]), +                                     delta: 150), +                        delta: 150), +                 parbreak() })
test/out/text/escape-00.out view
@@ -164,24 +164,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [\ / [ ] { } # * _ + = ~ ]), -  linebreak(), -  text(body: [` $ " ' < > @ ( ) A]), -  parbreak(), -  text(body: [( ) ;]), -  parbreak(), -  text(body: [//+                 text(body: [\ / [ ] { } # * _ + = ~ ]), +                 linebreak(), +                 text(body: [` $ " ' < > @ ( ) A]), +                 parbreak(), +                 text(body: [( ) ;]), +                 parbreak(), +                 text(body: [// /* */ /]), -  strong(body: text(body: [ */ ])), -  parbreak(), -  text(body: [🏕 == 🏕]), -  parbreak(), -  text(body: [A vs. \u{41}]), -  parbreak(), -  text(body: [let f() , ; : | + - /= == 12 “string”]), -  parbreak(), -  text(body: [10. May]), -  parbreak() }+                 strong(body: text(body: [ */ ])), +                 parbreak(), +                 text(body: [🏕 == 🏕]), +                 parbreak(), +                 text(body: [A vs. \u{41}]), +                 parbreak(), +                 text(body: [let f() , ; : | + - /= == 12 “string”]), +                 parbreak(), +                 text(body: [10. May]), +                 parbreak() })
test/out/text/fallback-00.out view
@@ -65,17 +65,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A😀B]), -  parbreak(), -  text(body: [دع النص يمطر عليك]), -  parbreak(), -  text(body: [ب🐈😀سم]), -  parbreak(), -  text(body: [Aب😀🏞سمB]), -  parbreak(), -  text(body: [01️⃣2]), -  parbreak(), -  text(body: [A🐈ዲሞB]), -  parbreak() }+                 text(body: [A😀B]), +                 parbreak(), +                 text(body: [دع النص يمطر عليك]), +                 parbreak(), +                 text(body: [ب🐈😀سم]), +                 parbreak(), +                 text(body: [Aب😀🏞سمB]), +                 parbreak(), +                 text(body: [01️⃣2]), +                 parbreak(), +                 text(body: [A🐈ዲሞB]), +                 parbreak() })
test/out/text/features-00.out view
@@ -61,12 +61,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: text(body: [Tq]), -       kerning: true), -  text(body: [ ]), -  linebreak(), -  text(body: text(body: [Tq]), -       kerning: false), -  parbreak() }+                 text(body: text(body: [Tq]), +                      kerning: true), +                 text(body: [ ]), +                 linebreak(), +                 text(body: text(body: [Tq]), +                      kerning: false), +                 parbreak() })
test/out/text/features-01.out view
@@ -48,7 +48,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  smallcaps(body: text(body: [Smallcaps])), -  parbreak() }+                 smallcaps(body: text(body: [Smallcaps])), +                 parbreak() })
test/out/text/features-02.out view
@@ -77,22 +77,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ a vs ], -       font: "IBM Plex Serif"), -  text(alternates: true, -       body: text(body: [a], -                  font: "IBM Plex Serif"), -       font: "IBM Plex Serif"), -  text(body: [ ], -       font: "IBM Plex Serif"), -  linebreak(), -  text(body: [ß vs ], -       font: "IBM Plex Serif"), -  text(body: text(body: [ß], -                  font: "IBM Plex Serif"), -       font: "IBM Plex Serif", -       stylistic-set: 5), -  parbreak() }+                      font: "IBM Plex Serif"), +                 text(alternates: true, +                      body: text(body: [a], +                                 font: "IBM Plex Serif"), +                      font: "IBM Plex Serif"), +                 text(body: [ ], +                      font: "IBM Plex Serif"), +                 linebreak(), +                 text(body: [ß vs ], +                      font: "IBM Plex Serif"), +                 text(body: text(body: [ß], +                                 font: "IBM Plex Serif"), +                      font: "IBM Plex Serif", +                      stylistic-set: 5), +                 parbreak() })
test/out/text/features-03.out view
@@ -56,9 +56,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [fi vs. ]), -  text(body: text(body: [No fi]), -       ligatures: false), -  parbreak() }+                 text(body: [fi vs. ]), +                 text(body: text(body: [No fi]), +                      ligatures: false), +                 parbreak() })
test/out/text/features-04.out view
@@ -63,13 +63,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ 0123456789 ], -       number-type: "old-style"), -  linebreak(), -  text(body: text(body: [0123456789], -                  number-type: "old-style"), -       number-type: auto), -  parbreak() }+                      number-type: "old-style"), +                 linebreak(), +                 text(body: text(body: [0123456789], +                                 number-type: "old-style"), +                      number-type: auto), +                 parbreak() })
test/out/text/features-05.out view
@@ -74,16 +74,16 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: text(body: [0123456789]), -       number-width: "proportional"), -  text(body: [ ]), -  linebreak(), -  text(body: text(body: [3456789123]), -       number-width: "tabular"), -  text(body: [ ]), -  linebreak(), -  text(body: text(body: [0123456789]), -       number-width: "tabular"), -  parbreak() }+                 text(body: text(body: [0123456789]), +                      number-width: "proportional"), +                 text(body: [ ]), +                 linebreak(), +                 text(body: text(body: [3456789123]), +                      number-width: "tabular"), +                 text(body: [ ]), +                 linebreak(), +                 text(body: text(body: [0123456789]), +                      number-width: "tabular"), +                 parbreak() })
test/out/text/features-06.out view
@@ -81,22 +81,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ 0 vs. ], -       font: "IBM Plex Serif"), -  text(body: text(body: [0], -                  font: "IBM Plex Serif"), -       font: "IBM Plex Serif", -       slashed-zero: true), -  text(body: [ ], -       font: "IBM Plex Serif"), -  linebreak(), -  text(body: [1/2 vs. ], -       font: "IBM Plex Serif"), -  text(body: text(body: [1/2], -                  font: "IBM Plex Serif"), -       font: "IBM Plex Serif", -       fractions: true), -  parbreak() }+                      font: "IBM Plex Serif"), +                 text(body: text(body: [0], +                                 font: "IBM Plex Serif"), +                      font: "IBM Plex Serif", +                      slashed-zero: true), +                 text(body: [ ], +                      font: "IBM Plex Serif"), +                 linebreak(), +                 text(body: [1/2 vs. ], +                      font: "IBM Plex Serif"), +                 text(body: text(body: [1/2], +                                 font: "IBM Plex Serif"), +                      font: "IBM Plex Serif", +                      fractions: true), +                 parbreak() })
test/out/text/features-07.out view
@@ -69,13 +69,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: text(body: [Smcp]), -       features: ("smcp")), -  text(body: [ ]), -  linebreak(), -  text(body: [fi vs. ]), -  text(body: text(body: [No fi]), -       features: (liga: 0)), -  parbreak() }+                 text(body: text(body: [Smcp]), +                      features: ("smcp")), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [fi vs. ]), +                 text(body: text(body: [No fi]), +                      features: (liga: 0)), +                 parbreak() })
test/out/text/font-00.out view
@@ -188,52 +188,52 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: text(body: [A]), -       size: 20.0pt), -  text(body: [+                 text(body: text(body: [A]), +                      size: 20.0pt), +                 text(body: [ ]), -  text(body: text(body: [A]), -       size: 2.0em), -  text(body: [+                 text(body: text(body: [A]), +                      size: 2.0em), +                 text(body: [ ]), -  text(body: text(body: [A]), -       size: 15.0pt + 0.5em), -  parbreak(), -  text(body: text(body: [Normal])), -  parbreak(), -  text(body: text(body: [Italic]), -       style: "italic"), -  parbreak(), -  text(body: text(body: [Bold]), -       weight: "bold"), -  parbreak(), -  text(body: text(body: [Condensed]), -       stretch: 50%), -  parbreak(), -  text(body: text(body: [Serif]), -       font: "IBM Plex Serif"), -  parbreak(), -  text(body: [Emoji: 🐪, 🌋, 🏞]), -  parbreak(), -  text(body: [+                 text(body: text(body: [A]), +                      size: 15.0pt + 0.5em), +                 parbreak(), +                 text(body: text(body: [Normal])), +                 parbreak(), +                 text(body: text(body: [Italic]), +                      style: "italic"), +                 parbreak(), +                 text(body: text(body: [Bold]), +                      weight: "bold"), +                 parbreak(), +                 text(body: text(body: [Condensed]), +                      stretch: 50%), +                 parbreak(), +                 text(body: text(body: [Serif]), +                      font: "IBM Plex Serif"), +                 parbreak(), +                 text(body: [Emoji: 🐪, 🌋, 🏞]), +                 parbreak(), +                 text(body: [ ]), -  text(body: [+                 text(body: [ This is ], -       fill: rgb(13%,61%,67%,100%)), -  text(body: text(body: [way more], -                  fill: rgb(13%,61%,67%,100%)), -       color: rgb(98%,39%,29%,100%), -       fill: rgb(13%,61%,67%,100%)), -  text(body: [ colorful.], -       fill: rgb(13%,61%,67%,100%)), -  parbreak(), -  parbreak(), -  text(body: [+                      fill: rgb(13%,61%,67%,100%)), +                 text(body: text(body: [way more], +                                 fill: rgb(13%,61%,67%,100%)), +                      color: rgb(98%,39%,29%,100%), +                      fill: rgb(13%,61%,67%,100%)), +                 text(body: [ colorful.], +                      fill: rgb(13%,61%,67%,100%)), +                 parbreak(), +                 parbreak(), +                 text(body: [ 2π = 𝛼 + 𝛽. ✅], -       fallback: false, -       fill: rgb(13%,61%,67%,100%), -       font: ("PT Sans", -              "Twitter Color Emoji")), -  parbreak() }+                      fallback: false, +                      fill: rgb(13%,61%,67%,100%), +                      font: ("PT Sans", +                             "Twitter Color Emoji")), +                 parbreak() })
test/out/text/font-01.out view
@@ -95,28 +95,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: "Text"), -  text(body: [ ]), -  linebreak(), -  text(body: "Text", -       color: rgb(100%,25%,21%,100%)), -  text(body: [ ]), -  linebreak(), -  text(body: "Text", -       color: rgb(0%,45%,85%,100%), -       font: "Ubuntu"), -  text(body: [ ]), -  linebreak(), -  text(body: text(body: [Text]), -       color: rgb(22%,80%,80%,100%), -       font: "IBM Plex Serif"), -  text(body: [ ]), -  linebreak(), -  text(body: text(body: [Text]), -       color: rgb(100%,25%,21%,100%), -       font: "New Computer Modern"), -  text(body: [ ]), -  linebreak(), -  parbreak() }+                 text(body: "Text"), +                 text(body: [ ]), +                 linebreak(), +                 text(body: "Text", +                      color: rgb(100%,25%,21%,100%)), +                 text(body: [ ]), +                 linebreak(), +                 text(body: "Text", +                      color: rgb(0%,45%,85%,100%), +                      font: "Ubuntu"), +                 text(body: [ ]), +                 linebreak(), +                 text(body: text(body: [Text]), +                      color: rgb(22%,80%,80%,100%), +                      font: "IBM Plex Serif"), +                 text(body: [ ]), +                 linebreak(), +                 text(body: text(body: [Text]), +                      color: rgb(100%,25%,21%,100%), +                      font: "New Computer Modern"), +                 text(body: [ ]), +                 linebreak(), +                 parbreak() })
test/out/text/hyphenate-00.out view
@@ -93,22 +93,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       hyphenate: true), -  text(body: [+                      hyphenate: true), +                 text(body: [ ], -       hyphenate: true), -  grid(children: (text(body: [Warm welcomes to Typst.], -                       hyphenate: true), -                  text(body: { text(body: [διαμερίσματα. ], -                                    hyphenate: true), -                               linebreak(), -                               text(body: [λατρευτός], -                                    hyphenate: true) }, -                       hyphenate: true, -                       lang: "el")), -       columns: (50.0pt, 50.0pt)), -  parbreak() }+                      hyphenate: true), +                 grid(children: (text(body: [Warm welcomes to Typst.], +                                      hyphenate: true), +                                 text(body: { text(body: [διαμερίσματα. ], +                                                   hyphenate: true), +                                              linebreak(), +                                              text(body: [λατρευτός], +                                                   hyphenate: true) }, +                                      hyphenate: true, +                                      lang: "el")), +                      columns: (50.0pt, 50.0pt)), +                 parbreak() })
test/out/text/hyphenate-01.out view
@@ -151,51 +151,51 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Welcome to wonderful experiences. ], -       hyphenate: true), -  linebreak(), -  text(body: [Welcome to ], -       hyphenate: true), -  raw(block: false, -      lang: none, -      text: "wonderful"), -  text(body: [ experiences. ], -       hyphenate: true), -  linebreak(), -  text(body: [Welcome to ], -       hyphenate: true), -  text(body: text(body: [wonderful], -                  hyphenate: true), -       hyphenate: false), -  text(body: [ experiences. ], -       hyphenate: true), -  linebreak(), -  text(body: [Welcome to wonde], -       hyphenate: true), -  text(body: text(body: [rf], -                  hyphenate: true), -       hyphenate: false), -  text(body: [ul experiences. ], -       hyphenate: true), -  linebreak(), -  text(body: [+                 parbreak(), +                 text(body: [Welcome to wonderful experiences. ], +                      hyphenate: true), +                 linebreak(), +                 text(body: [Welcome to ], +                      hyphenate: true), +                 raw(block: false, +                     lang: none, +                     text: "wonderful"), +                 text(body: [ experiences. ], +                      hyphenate: true), +                 linebreak(), +                 text(body: [Welcome to ], +                      hyphenate: true), +                 text(body: text(body: [wonderful], +                                 hyphenate: true), +                      hyphenate: false), +                 text(body: [ experiences. ], +                      hyphenate: true), +                 linebreak(), +                 text(body: [Welcome to wonde], +                      hyphenate: true), +                 text(body: text(body: [rf], +                                 hyphenate: true), +                      hyphenate: false), +                 text(body: [ul experiences. ], +                      hyphenate: true), +                 linebreak(), +                 text(body: [ ], -       hyphenate: true), -  text(body: [+                      hyphenate: true), +                 text(body: [ Welcome to wonderful experiences. ], -       hyphenate: false), -  linebreak(), -  text(body: [Welcome to wo], -       hyphenate: false), -  text(body: text(body: [nd], -                  hyphenate: false), -       hyphenate: true), -  text(body: [erful experiences. ], -       hyphenate: false), -  linebreak(), -  parbreak() }+                      hyphenate: false), +                 linebreak(), +                 text(body: [Welcome to wo], +                      hyphenate: false), +                 text(body: text(body: [nd], +                                 hyphenate: false), +                      hyphenate: true), +                 text(body: [erful experiences. ], +                      hyphenate: false), +                 linebreak(), +                 parbreak() })
test/out/text/hyphenate-02.out view
@@ -69,15 +69,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ It’s a ], -       hyphenate: true), -  emph(body: text(body: [Tree], -                  hyphenate: true)), -  text(body: [beard.], -       hyphenate: true), -  parbreak() }+                      hyphenate: true), +                 emph(body: text(body: [Tree], +                                 hyphenate: true)), +                 text(body: [beard.], +                      hyphenate: true), +                 parbreak() })
test/out/text/hyphenate-03.out view
@@ -65,18 +65,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       hyphenate: true, -       lang: "de"), -  grid(children: (text(body: [Barankauf], -                       hyphenate: true, -                       lang: "de"), -                  text(body: [Bar­ankauf], -                       hyphenate: true, -                       lang: "de")), -       columns: (20.0pt, 20.0pt), -       gutter: 20.0pt), -  parbreak() }+                      hyphenate: true, +                      lang: "de"), +                 grid(children: (text(body: [Barankauf], +                                      hyphenate: true, +                                      lang: "de"), +                                 text(body: [Bar­ankauf], +                                      hyphenate: true, +                                      lang: "de")), +                      columns: (20.0pt, 20.0pt), +                      gutter: 20.0pt), +                 parbreak() })
test/out/text/hyphenate-04.out view
@@ -72,14 +72,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       hyphenate: true), -  h(amount: 6.0pt), -  text(body: [ networks, the rest.], -       hyphenate: true), -  parbreak() }+                      hyphenate: true), +                 h(amount: 6.0pt), +                 text(body: [ networks, the rest.], +                      hyphenate: true), +                 parbreak() })
test/out/text/lang-00.out view
@@ -73,19 +73,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       hyphenate: true), -  grid(children: (text(body: text(body: [“Eingabeaufforderung”], -                                  hyphenate: true), -                       hyphenate: true, -                       lang: "en"), -                  text(body: text(body: [“Eingabeaufforderung”], -                                  hyphenate: true), -                       hyphenate: true, -                       lang: "de")), -       columns: (20.0pt, 20.0pt), -       gutter: 1.0fr), -  parbreak() }+                      hyphenate: true), +                 grid(children: (text(body: text(body: [“Eingabeaufforderung”], +                                                 hyphenate: true), +                                      hyphenate: true, +                                      lang: "en"), +                                 text(body: text(body: [“Eingabeaufforderung”], +                                                 hyphenate: true), +                                      hyphenate: true, +                                      lang: "de")), +                      columns: (20.0pt, 20.0pt), +                      gutter: 1.0fr), +                 parbreak() })
test/out/text/lang-01.out view
@@ -73,21 +73,21 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Бб+                 parbreak(), +                 text(body: [Бб ], -       font: "Ubuntu"), -  text(body: text(body: [Бб], -                  font: "Ubuntu"), -       font: "Ubuntu", -       lang: "uk"), -  text(body: [+                      font: "Ubuntu"), +                 text(body: text(body: [Бб], +                                 font: "Ubuntu"), +                      font: "Ubuntu", +                      lang: "uk"), +                 text(body: [ ], -       font: "Ubuntu"), -  text(body: text(body: [Бб], -                  font: "Ubuntu"), -       font: "Ubuntu", -       lang: "sr"), -  parbreak() }+                      font: "Ubuntu"), +                 text(body: text(body: [Бб], +                                 font: "Ubuntu"), +                      font: "Ubuntu", +                      lang: "sr"), +                 parbreak() })
test/out/text/lang-with-region-00.out view
@@ -54,9 +54,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], lang: "zh"), -  outline(), -  parbreak() }+                 outline(), +                 parbreak() })
test/out/text/lang-with-region-01.out view
@@ -56,11 +56,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       lang: "zh", -       region: "XX"), -  outline(), -  parbreak() }+                      lang: "zh", +                      region: "XX"), +                 outline(), +                 parbreak() })
test/out/text/lang-with-region-02.out view
@@ -56,11 +56,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       lang: "zh", -       region: "TW"), -  outline(), -  parbreak() }+                      lang: "zh", +                      region: "TW"), +                 outline(), +                 parbreak() })
test/out/text/linebreak-00.out view
@@ -51,7 +51,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [This is a spaceexceedinglylongy.]), -  parbreak() }+                 text(body: [This is a spaceexceedinglylongy.]), +                 parbreak() })
test/out/text/linebreak-01.out view
@@ -47,7 +47,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Supercalifragilisticexpialidocious Expialigoricmetrioxidation.]), -  parbreak() }+                 text(body: [Supercalifragilisticexpialidocious Expialigoricmetrioxidation.]), +                 parbreak() })
test/out/text/linebreak-02.out view
@@ -56,9 +56,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [This is partly emp]), -  emph(body: text(body: [has])), -  text(body: [ized.]), -  parbreak() }+                 text(body: [This is partly emp]), +                 emph(body: text(body: [has])), +                 text(body: [ized.]), +                 parbreak() })
test/out/text/linebreak-03.out view
@@ -51,8 +51,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ Hard ]), -  linebreak(), -  text(body: [ break.]), -  parbreak() }+                 linebreak(), +                 text(body: [ break.]), +                 parbreak() })
test/out/text/linebreak-04.out view
@@ -56,9 +56,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Hard break directly after ]), -  linebreak(), -  text(body: [normal break.]), -  parbreak() }+                 text(body: [Hard break directly after ]), +                 linebreak(), +                 text(body: [normal break.]), +                 parbreak() })
test/out/text/linebreak-05.out view
@@ -59,13 +59,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Two consecutive ]), -  linebreak(), -  linebreak(), -  text(body: [breaks and three ]), -  linebreak(), -  linebreak(), -  text(body: [more.]), -  parbreak() }+                 text(body: [Two consecutive ]), +                 linebreak(), +                 linebreak(), +                 text(body: [breaks and three ]), +                 linebreak(), +                 linebreak(), +                 text(body: [more.]), +                 parbreak() })
test/out/text/linebreak-06.out view
@@ -49,9 +49,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Trailing break ]), -  linebreak(), -  linebreak(), -  parbreak() }+                 text(body: [Trailing break ]), +                 linebreak(), +                 linebreak(), +                 parbreak() })
test/out/text/linebreak-07.out view
@@ -97,17 +97,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ With a soft ]), -  linebreak(justify: true), -  text(body: [+                 linebreak(justify: true), +                 text(body: [ break you can force a break without ]), -  linebreak(justify: true), -  text(body: [+                 linebreak(justify: true), +                 text(body: [ breaking justification. ]), -  linebreak(justify: false), -  text(body: [+                 linebreak(justify: false), +                 text(body: [ Nice!]), -  parbreak() }+                 parbreak() })
test/out/text/linebreak-08.out view
@@ -60,11 +60,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [First part]), -  text(body: [Second part]), -  parbreak(), -  text(body: [First part ]), -  text(body: [Second part]), -  parbreak() }+                 text(body: [First part]), +                 text(body: [Second part]), +                 parbreak(), +                 text(body: [First part ]), +                 text(body: [Second part]), +                 parbreak() })
test/out/text/linebreak-obj-00.out view
@@ -84,14 +84,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [They can look for the details in ]), -  ref(supplement: auto, -      target: ), -  text(body: [,+                 parbreak(), +                 text(body: [They can look for the details in ]), +                 ref(supplement: auto, +                     target: <netwok>), +                 text(body: [, which is the authoritative source.]), -  parbreak(), -  bibliography(path: "/works.bib"), -  parbreak() }+                 parbreak(), +                 bibliography(path: "/works.bib"), +                 parbreak() })
test/out/text/linebreak-obj-01.out view
@@ -121,78 +121,78 @@ , HardBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [. ]), -  linebreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [! ]), -  linebreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [? ]), -  linebreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [, ]), -  linebreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [; ]), -  linebreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [: ]), -  linebreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [- ]), -  linebreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [– ]), -  linebreak(), -  text(body: [We prove ]), -  math.equation(block: false, -                body: { text(body: [1]), -                        text(body: [<]), -                        text(body: [2]) }, -                numbering: none), -  text(body: [— ]), -  linebreak() }+                 parbreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [. ]), +                 linebreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [! ]), +                 linebreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [? ]), +                 linebreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [, ]), +                 linebreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [; ]), +                 linebreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [: ]), +                 linebreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [- ]), +                 linebreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [– ]), +                 linebreak(), +                 text(body: [We prove ]), +                 math.equation(block: false, +                               body: { text(body: [1]), +                                       text(body: [<]), +                                       text(body: [2]) }, +                               numbering: none), +                 text(body: [— ]), +                 linebreak() })
test/out/text/lorem-00.out view
@@ -48,7 +48,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.]), -  parbreak() }+                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.]), +                 parbreak() })
test/out/text/lorem-01.out view
@@ -110,20 +110,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.], -       size: 8.0pt), -  text(body: [ ], size: 8.0pt), -  text(body: [Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.], -       size: 8.0pt), -  text(body: [ ], size: 8.0pt), -  parbreak(), -  text(body: [Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.], -       size: 8.0pt), -  text(body: [ ], size: 8.0pt), -  text(body: [Excepteur sint occaecat cupidatat non proident, sunt.], -       size: 8.0pt), -  text(body: [ ], size: 8.0pt), -  parbreak() }+                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.], +                      size: 8.0pt), +                 text(body: [ ], size: 8.0pt), +                 text(body: [Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.], +                      size: 8.0pt), +                 text(body: [ ], size: 8.0pt), +                 parbreak(), +                 text(body: [Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.], +                      size: 8.0pt), +                 text(body: [ ], size: 8.0pt), +                 text(body: [Excepteur sint occaecat cupidatat non proident, sunt.], +                      size: 8.0pt), +                 text(body: [ ], size: 8.0pt), +                 parbreak() })
test/out/text/microtype-00.out view
@@ -186,28 +186,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], size: 9.0pt), -  rect(body: { text(body: [+                 rect(body: { text(body: [ This is a little bit of text that builds up to hang-ing hyphens and dash—es and then, you know, some punctuation in the margin.], -                    size: 9.0pt), -               parbreak() }, -       fill: rgb(0%,0%,0%,0%), -       inset: 0.0pt, -       width: 100%), -  parbreak(), -  text(body: [+                                   size: 9.0pt), +                              parbreak() }, +                      fill: rgb(0%,0%,0%,0%), +                      inset: 0.0pt, +                      width: 100%), +                 parbreak(), +                 text(body: [ בנייה נכונה של משפטים ארוכים דורשת ידע בשפה. אז בואו נדבר על מזג האוויר.], -       font: ("PT Sans", -              "Noto Serif Hebrew"), -       lang: "he", -       size: 9.0pt), -  parbreak() }+                      font: ("PT Sans", +                             "Noto Serif Hebrew"), +                      lang: "he", +                      size: 9.0pt), +                 parbreak() })
test/out/text/microtype-01.out view
@@ -65,12 +65,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ :], dir: rtl), -  parbreak() }+                 parbreak() })
test/out/text/quotes-00.out view
@@ -447,54 +447,54 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ “The horse eats no cucumber salad” was the first sentence ever uttered on the ‘telephone.’], -       lang: "en"), -  parbreak(), -  text(body: [+                      lang: "en"), +                 parbreak(), +                 text(body: [ “Das Pferd frisst keinen Gurkensalat” war der erste jemals am ‘Fernsprecher” gesagte Satz.], -       lang: "de"), -  parbreak(), -  text(body: [+                      lang: "de"), +                 parbreak(), +                 text(body: [ “Das Pferd frisst keinen Gurkensalat” war der erste jemals am ‘Fernsprecher” gesagte Satz.], -       lang: "de", -       region: "CH"), -  parbreak(), -  text(body: [+                      lang: "de", +                      region: "CH"), +                 parbreak(), +                 text(body: [ “El caballo no come ensalada de pepino” fue la primera frase pronunciada por ‘teléfono’.], -       lang: "es", -       region: none), -  parbreak(), -  text(body: [+                      lang: "es", +                      region: none), +                 parbreak(), +                 text(body: [ “El caballo no come ensalada de pepino” fue la primera frase pronunciada por ‘teléfono’.], -       lang: "es", -       region: "MX"), -  parbreak(), -  text(body: [+                      lang: "es", +                      region: "MX"), +                 parbreak(), +                 text(body: [ “Le cheval ne mange pas de salade de concombres” est la première phrase jamais prononcée au ‘téléphone’.], -       lang: "fr", -       region: none), -  parbreak(), -  text(body: [+                      lang: "fr", +                      region: none), +                 parbreak(), +                 text(body: [ “Hevonen ei syö kurkkusalaattia” oli ensimmäinen koskaan ‘puhelimessa” lausuttu lause.], -       lang: "fi", -       region: none), -  parbreak(), -  text(body: [+                      lang: "fi", +                      region: none), +                 parbreak(), +                 text(body: [ “הסוס לא אוכל סלט מלפפונים” היה המשפט ההראשון שנאמר ב ‘טלפון’.], -       lang: "he", -       region: none), -  parbreak(), -  text(body: [+                      lang: "he", +                      region: none), +                 parbreak(), +                 text(body: [ “Calul nu mănâncă salată de castraveți” a fost prima propoziție rostită vreodată la ‘telefon’.], -       lang: "ro", -       region: none), -  parbreak(), -  text(body: [+                      lang: "ro", +                      region: none), +                 parbreak(), +                 text(body: [ “Лошадь не ест салат из огурцов” - это была первая фраза, сказанная по ‘телефону’.], -       lang: "ru", -       region: none), -  parbreak() }+                      lang: "ru", +                      region: none), +                 parbreak() })
test/out/text/quotes-01.out view
@@ -45,7 +45,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [””]), -  parbreak() }+                 text(body: [””]), +                 parbreak() })
test/out/text/quotes-02.out view
@@ -91,9 +91,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [The 5’11” ‘quick” brown fox jumps over the “lazy” dog’s ear.]), -  parbreak(), -  text(body: [He said “I’m a big fella.”]), -  parbreak() }+                 text(body: [The 5’11” ‘quick” brown fox jumps over the “lazy” dog’s ear.]), +                 parbreak(), +                 text(body: [He said “I’m a big fella.”]), +                 parbreak() })
test/out/text/quotes-03.out view
@@ -74,7 +74,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [The 5'11" ‘quick' brown fox jumps over the "lazy” dog's ear.]), -  parbreak() }+                 text(body: [The 5'11" ‘quick' brown fox jumps over the "lazy” dog's ear.]), +                 parbreak() })
test/out/text/quotes-04.out view
@@ -91,10 +91,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [He’s told some books contain questionable “example text”.]), -  parbreak(), -  text(body: [+                 text(body: [He’s told some books contain questionable “example text”.]), +                 parbreak(), +                 text(body: [ He’s told some books contain questionable “example text”.]), -  parbreak() }+                 parbreak() })
test/out/text/quotes-05.out view
@@ -116,13 +116,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [“She suddenly started speaking french: ]), -  text(body: text(body: [‘Je suis une banane.’]), -       lang: "fr"), -  text(body: [” Roman told me.]), -  parbreak(), -  text(body: [Some people’s thought on this would be ]), -  text(body: [ “strange.”]), -  parbreak() }+                 text(body: [“She suddenly started speaking french: ]), +                 text(body: text(body: [‘Je suis une banane.’]), +                      lang: "fr"), +                 text(body: [” Roman told me.]), +                 parbreak(), +                 text(body: [Some people’s thought on this would be ]), +                 text(body: [ “strange.”]), +                 parbreak() })
test/out/text/raw-00.out view
@@ -45,12 +45,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  raw(block: false, -      lang: none, -      text: "A"), -  raw(block: false, -      lang: none, -      text: "B"), -  parbreak() }+                 raw(block: false, +                     lang: none, +                     text: "A"), +                 raw(block: false, +                     lang: none, +                     text: "B"), +                 parbreak() })
test/out/text/raw-01.out view
@@ -47,14 +47,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  raw(block: true, -      lang: "typ", -      text: "#let x = 1"), -  text(body: [ ]), -  linebreak(), -  raw(block: true, -      lang: "typ", -      text: "#f(1)"), -  parbreak() }+                 raw(block: true, +                     lang: "typ", +                     text: "#let x = 1"), +                 text(body: [ ]), +                 linebreak(), +                 raw(block: true, +                     lang: "typ", +                     text: "#f(1)"), +                 parbreak() })
test/out/text/raw-02.out view
@@ -49,14 +49,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Text ]), -  raw(block: true, -      lang: "rust", -      text: "fn code() {}\n"), -  text(body: [+                 raw(block: true, +                     lang: "rust", +                     text: "fn code() {}\n"), +                 text(body: [ Text]), -  parbreak() }+                 parbreak() })
test/out/text/raw-03.out view
@@ -44,9 +44,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  raw(block: true, -      lang: none, -      text: "```backticks```\n"), -  parbreak() }+                 raw(block: true, +                     lang: none, +                     text: "```backticks```\n"), +                 parbreak() })
test/out/text/raw-04.out view
@@ -78,44 +78,44 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [The keyword ]), -  raw(block: true, -      lang: "rust", -      text: "let"), -  text(body: [.]), -  parbreak(), -  text(body: [(]), -  raw(block: false, -      lang: none, -      text: ""), -  text(body: [) ]), -  linebreak(), -  text(body: [(]), -  raw(block: false, -      lang: none, -      text: " untrimmed "), -  text(body: [) ]), -  linebreak(), -  text(body: [(]), -  raw(block: true, -      lang: none, -      text: "trimmed` "), -  text(body: [) ]), -  linebreak(), -  text(body: [(]), -  raw(block: true, -      lang: none, -      text: "trimmed "), -  text(body: [) ]), -  linebreak(), -  text(body: [(]), -  raw(block: true, -      lang: none, -      text: "trimmed"), -  text(body: [) ]), -  linebreak(), -  parbreak() }+                 text(body: [The keyword ]), +                 raw(block: true, +                     lang: "rust", +                     text: "let"), +                 text(body: [.]), +                 parbreak(), +                 text(body: [(]), +                 raw(block: false, +                     lang: none, +                     text: ""), +                 text(body: [) ]), +                 linebreak(), +                 text(body: [(]), +                 raw(block: false, +                     lang: none, +                     text: " untrimmed "), +                 text(body: [) ]), +                 linebreak(), +                 text(body: [(]), +                 raw(block: true, +                     lang: none, +                     text: "trimmed` "), +                 text(body: [) ]), +                 linebreak(), +                 text(body: [(]), +                 raw(block: true, +                     lang: none, +                     text: "trimmed "), +                 text(body: [) ]), +                 linebreak(), +                 text(body: [(]), +                 raw(block: true, +                     lang: none, +                     text: "trimmed"), +                 text(body: [) ]), +                 linebreak(), +                 parbreak() })
test/out/text/raw-05.out view
@@ -44,9 +44,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  raw(block: false, -      lang: none, -      text: "rust let"), -  parbreak() }+                 raw(block: false, +                     lang: none, +                     text: "rust let"), +                 parbreak() })
test/out/text/raw-06.out view
@@ -45,10 +45,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [ ]), -  raw(block: true, -      lang: none, -      text: "  A\n        B\n       C\n     "), -  parbreak() }+                 text(body: [ ]), +                 raw(block: true, +                     lang: none, +                     text: "  A\n        B\n       C\n     "), +                 parbreak() })
test/out/text/raw-07.out view
@@ -53,11 +53,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  raw(block: false, -      lang: none, -      text: "Roboto"), -  parbreak() }+                 raw(block: false, +                     lang: none, +                     text: "Roboto"), +                 parbreak() })
test/out/text/raw-align-00.out view
@@ -79,20 +79,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], -       size: 6.0pt), -  parbreak(), -  raw(block: true, -      lang: "py", -      text: "def something(x):\n  return x\n\na = 342395823859823958329\nb = 324923\n"), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], -       size: 6.0pt), -  parbreak() }+                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], +                      size: 6.0pt), +                 parbreak(), +                 raw(block: true, +                     lang: "py", +                     text: "def something(x):\n  return x\n\na = 342395823859823958329\nb = 324923\n"), +                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], +                      size: 6.0pt), +                 parbreak() })
test/out/text/raw-align-01.out view
@@ -86,22 +86,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], -       size: 6.0pt), -  text(body: [+                 parbreak(), +                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], +                      size: 6.0pt), +                 text(body: [ ], size: 6.0pt), -  align(alignment: center, -        body: raw(align: right, -                  block: true, -                  lang: "typ", -                  text: "#let f(x) = x\n#align(center, line(length: 1em))")), -  text(body: [+                 align(alignment: center, +                       body: raw(align: right, +                                 block: true, +                                 lang: "typ", +                                 text: "#let f(x) = x\n#align(center, line(length: 1em))")), +                 text(body: [ ], size: 6.0pt), -  text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], -       size: 6.0pt), -  parbreak() }+                 text(body: [Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut], +                      size: 6.0pt), +                 parbreak() })
test/out/text/raw-code-00.out view
@@ -59,13 +59,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], size: 6.0pt), -  raw(block: true, -      lang: "typ", -      text: "= Chapter 1\n#lorem(100)\n\n#let hi = \"Hello World\"\n#show heading: emph\n"), -  parbreak() }+                 raw(block: true, +                     lang: "typ", +                     text: "= Chapter 1\n#lorem(100)\n\n#let hi = \"Hello World\"\n#show heading: emph\n"), +                 parbreak() })
test/out/text/raw-code-01.out view
@@ -59,12 +59,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  raw(block: true, -      lang: "rust", -      text: "/// A carefully designed state machine.\n#[derive(Debug)]\nenum State<'a> { A(u8), B(&'a str) }\n\nfn advance(state: State<'_>) -> State<'_> {\n    unimplemented!(\"state machine\")\n}\n"), -  parbreak() }+                 parbreak(), +                 raw(block: true, +                     lang: "rust", +                     text: "/// A carefully designed state machine.\n#[derive(Debug)]\nenum State<'a> { A(u8), B(&'a str) }\n\nfn advance(state: State<'_>) -> State<'_> {\n    unimplemented!(\"state machine\")\n}\n"), +                 parbreak() })
test/out/text/raw-code-02.out view
@@ -57,12 +57,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  raw(block: true, -      lang: "py", -      text: "import this\n\ndef hi():\n  print(\"Hi!\")\n"), -  parbreak() }+                 parbreak(), +                 raw(block: true, +                     lang: "py", +                     text: "import this\n\ndef hi():\n  print(\"Hi!\")\n"), +                 parbreak() })
test/out/text/raw-code-03.out view
@@ -59,12 +59,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  raw(block: true, -      lang: "cpp", -      text: "#include <iostream>\n\nint main() {\n  std::cout << \"Hello, world!\";\n}\n"), -  parbreak() }+                 parbreak(), +                 raw(block: true, +                     lang: "cpp", +                     text: "#include <iostream>\n\nint main() {\n  std::cout << \"Hello, world!\";\n}\n"), +                 parbreak() })
test/out/text/raw-code-04.out view
@@ -84,19 +84,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  rect(body: { text(body: [+                 parbreak(), +                 rect(body: { text(body: [ ], -                    size: 6.0pt), -               raw(block: true, -                   lang: "html", -                   text: "<!DOCTYPE html>\n  <html>\n    <head>\n      <meta charset=\"utf-8\">\n    </head>\n    <body>\n      <h1>Topic</h1>\n      <p>The Hypertext Markup Language.</p>\n      <script>\n        function foo(a, b) {\n          return a + b + \"string\";\n        }\n      </script>\n    </body>\n  </html>\n  "), -               parbreak() }, -       fill: rgb(93%,94%,95%,100%), -       inset: (x: 4.0pt, y: 5.0pt), -       radius: 4.0pt), -  parbreak() }+                                   size: 6.0pt), +                              raw(block: true, +                                  lang: "html", +                                  text: "<!DOCTYPE html>\n  <html>\n    <head>\n      <meta charset=\"utf-8\">\n    </head>\n    <body>\n      <h1>Topic</h1>\n      <p>The Hypertext Markup Language.</p>\n      <script>\n        function foo(a, b) {\n          return a + b + \"string\";\n        }\n      </script>\n    </body>\n  </html>\n  "), +                              parbreak() }, +                      fill: rgb(93%,94%,95%,100%), +                      inset: (x: 4.0pt, y: 5.0pt), +                      radius: 4.0pt), +                 parbreak() })
test/out/text/shaping-00.out view
@@ -61,11 +61,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [ABCअपार्टमेंट]), -  parbreak(), -  text(body: [अपार्टमेंट]), -  parbreak(), -  text(body: [अ पा र् ट में ट]), -  parbreak() }+                 text(body: [ABCअपार्टमेंट]), +                 parbreak(), +                 text(body: [अपार्टमेंट]), +                 parbreak(), +                 text(body: [अ पा र् ट में ट]), +                 parbreak() })
test/out/text/shaping-01.out view
@@ -56,14 +56,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       dir: rtl, -       font: "Noto Serif Hebrew"), -  linebreak(), -  text(body: [ט], -       dir: rtl, -       font: "Noto Serif Hebrew"), -  parbreak() }+                      dir: rtl, +                      font: "Noto Serif Hebrew"), +                 linebreak(), +                 text(body: [ט], +                      dir: rtl, +                      font: "Noto Serif Hebrew"), +                 parbreak() })
test/out/text/shift-00.out view
@@ -140,24 +140,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  table(children: (text(body: [Typo.]), -                   text(body: [Fallb.]), -                   text(body: [Synth]), -                   { text(body: [x]), -                     super(body: text(body: [1])) }, -                   { text(body: [x]), -                     super(body: text(body: [5n])) }, -                   { text(body: [x]), -                     super(body: { text(body: [2 ]), -                                   box(body: square(size: 6.0pt)) }) }, -                   { text(body: [x]), -                     sub(body: text(body: [1])) }, -                   { text(body: [x]), -                     sub(body: text(body: [5n])) }, -                   { text(body: [x]), -                     sub(body: { text(body: [2 ]), -                                 box(body: square(size: 6.0pt)) }) }), -        columns: 3), -  parbreak() }+                 table(children: (text(body: [Typo.]), +                                  text(body: [Fallb.]), +                                  text(body: [Synth]), +                                  { text(body: [x]), +                                    super(body: text(body: [1])) }, +                                  { text(body: [x]), +                                    super(body: text(body: [5n])) }, +                                  { text(body: [x]), +                                    super(body: { text(body: [2 ]), +                                                  box(body: square(size: 6.0pt)) }) }, +                                  { text(body: [x]), +                                    sub(body: text(body: [1])) }, +                                  { text(body: [x]), +                                    sub(body: text(body: [5n])) }, +                                  { text(body: [x]), +                                    sub(body: { text(body: [2 ]), +                                                box(body: square(size: 6.0pt)) }) }), +                       columns: 3), +                 parbreak() })
test/out/text/shift-01.out view
@@ -74,19 +74,19 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ n]), -  super(baseline: -0.25em, -        body: text(body: [1]), -        size: 0.7em, -        typographic: false), -  text(body: [, n]), -  sub(body: text(body: [2])), -  text(body: [, … n]), -  super(baseline: -0.25em, -        body: text(body: [N]), -        size: 0.7em, -        typographic: false), -  parbreak() }+                 super(baseline: -0.25em, +                       body: text(body: [1]), +                       size: 0.7em, +                       typographic: false), +                 text(body: [, n]), +                 sub(body: text(body: [2])), +                 text(body: [, … n]), +                 super(baseline: -0.25em, +                       body: text(body: [N]), +                       size: 0.7em, +                       typographic: false), +                 parbreak() })
test/out/text/shift-02.out view
@@ -130,26 +130,26 @@ , HardBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  underline(body: { text(body: [The claim]), -                    super(body: text(body: [[4]])) }, -            offset: 0.15em, -            stroke: 0.5pt), -  text(body: [ has been disputed. ]), -  linebreak(), -  text(body: [The claim]), -  super(body: underline(body: text(body: [[4]]), -                        offset: 0.15em, -                        stroke: 0.5pt)), -  text(body: [ has been disputed. ]), -  linebreak(), -  text(body: [It really has been]), -  super(body: box(body: text(baseline: 0.0pt, -                             body: underline(body: text(body: [[4]]), -                                             offset: 0.15em, -                                             stroke: 0.5pt)))), -  text(body: [ ]), -  linebreak() }+                 underline(body: { text(body: [The claim]), +                                   super(body: text(body: [[4]])) }, +                           offset: 0.15em, +                           stroke: 0.5pt), +                 text(body: [ has been disputed. ]), +                 linebreak(), +                 text(body: [The claim]), +                 super(body: underline(body: text(body: [[4]]), +                                       offset: 0.15em, +                                       stroke: 0.5pt)), +                 text(body: [ has been disputed. ]), +                 linebreak(), +                 text(body: [It really has been]), +                 super(body: box(body: text(baseline: 0.0pt, +                                            body: underline(body: text(body: [[4]]), +                                                            offset: 0.15em, +                                                            stroke: 0.5pt)))), +                 text(body: [ ]), +                 linebreak() })
test/out/text/space-00.out view
@@ -196,50 +196,50 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A]), -  text(body: [B ]), -  text(body: [✅]), -  text(body: [ ]), -  linebreak(), -  text(body: [C ]), -  text(body: [D ]), -  text(body: [✅]), -  text(body: [ ]), -  linebreak(), -  text(body: [E]), -  text(body: [F]), -  text(body: [G ]), -  linebreak(), -  text(body: [H ]), -  text(body: [I]), -  text(body: [ J ]), -  linebreak(), -  text(body: [K ]), -  text(body: [L]), -  text(body: [M ]), -  linebreak(), -  text(body: [ N]), -  text(body: [O]), -  text(body: [ P ]), -  linebreak(), -  text(body: [ Q ]), -  text(body: [R]), -  text(body: [ S ]), -  linebreak(), -  text(body: [T]), -  text(body: [U]), -  text(body: [V+                 text(body: [A]), +                 text(body: [B ]), +                 text(body: [✅]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [C ]), +                 text(body: [D ]), +                 text(body: [✅]), +                 text(body: [ ]), +                 linebreak(), +                 text(body: [E]), +                 text(body: [F]), +                 text(body: [G ]), +                 linebreak(), +                 text(body: [H ]), +                 text(body: [I]), +                 text(body: [ J ]), +                 linebreak(), +                 text(body: [K ]), +                 text(body: [L]), +                 text(body: [M ]), +                 linebreak(), +                 text(body: [ N]), +                 text(body: [O]), +                 text(body: [ P ]), +                 linebreak(), +                 text(body: [ Q ]), +                 text(body: [R]), +                 text(body: [ S ]), +                 linebreak(), +                 text(body: [T]), +                 text(body: [U]), +                 text(body: [V ]), -  text(body: [ ]), -  linebreak(), -  text(body: [A]), -  text(body: [B ]), -  linebreak(), -  text(body: [A]), -  text(body: [ B ]), -  linebreak(), -  text(body: [A]), -  text(body: [B]), -  parbreak() }+                 text(body: [ ]), +                 linebreak(), +                 text(body: [A]), +                 text(body: [B ]), +                 linebreak(), +                 text(body: [A]), +                 text(body: [ B ]), +                 linebreak(), +                 text(body: [A]), +                 text(body: [B]), +                 parbreak() })
test/out/text/space-01.out view
@@ -66,17 +66,17 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A]), -  text(body: [B]), -  text(body: [C ]), -  linebreak(), -  text(body: [A ]), -  text(body: [ B]), -  text(body: [C ]), -  linebreak(), -  text(body: [A ]), -  text(body: [B]), -  text(body: [ C]), -  parbreak() }+                 text(body: [A]), +                 text(body: [B]), +                 text(body: [C ]), +                 linebreak(), +                 text(body: [A ]), +                 text(body: [ B]), +                 text(body: [C ]), +                 linebreak(), +                 text(body: [A ]), +                 text(body: [B]), +                 text(body: [ C]), +                 parbreak() })
test/out/text/space-02.out view
@@ -53,10 +53,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A]), -  text(body: text(body: [ ]), -       font: "IBM Plex Serif"), -  text(body: [B]), -  parbreak() }+                 text(body: [A]), +                 text(body: text(body: [ ]), +                      font: "IBM Plex Serif"), +                 text(body: [B]), +                 parbreak() })
test/out/text/space-03.out view
@@ -54,10 +54,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [Left ]), -  text(body: text(body: [Right]), -       font: "IBM Plex Serif"), -  text(body: [.]), -  parbreak() }+                 text(body: [Left ]), +                 text(body: text(body: [Right]), +                      font: "IBM Plex Serif"), +                 text(body: [.]), +                 parbreak() })
test/out/text/space-04.out view
@@ -59,12 +59,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  align(alignment: center, -        body: { text(body: [A ]), -                linebreak(), -                text(body: [B ]), -                linebreak(), -                text(body: [C]) }), -  parbreak() }+                 align(alignment: center, +                       body: { text(body: [A ]), +                               linebreak(), +                               text(body: [B ]), +                               linebreak(), +                               text(body: [C]) }), +                 parbreak() })
test/out/text/space-05.out view
@@ -50,10 +50,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A]), -  text(body: [+                 text(body: [A]), +                 text(body: [ ]), -  text(body: [ B]), -  parbreak() }+                 text(body: [ B]), +                 parbreak() })
test/out/text/space-06.out view
@@ -48,8 +48,8 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [LLLLLLLLLLLLLLLLLL R ]), -  emph(body: text(body: [L])), -  parbreak() }+                 text(body: [LLLLLLLLLLLLLLLLLL R ]), +                 emph(body: text(body: [L])), +                 parbreak() })
test/out/text/symbol-00.out view
@@ -124,41 +124,41 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [😀]), -  text(body: [+                 text(body: [😀]), +                 text(body: [ ]), -  text(body: [👵]), -  text(body: [+                 text(body: [👵]), +                 text(body: [ ]), -  text(body: [🐢]), -  parbreak(), -  text(body: [+                 text(body: [🐢]), +                 parbreak(), +                 text(body: [ ], -       font: "New Computer Modern Math"), -  text(body: [→], -       font: "New Computer Modern Math"), -  text(body: [+                      font: "New Computer Modern Math"), +                 text(body: [→], +                      font: "New Computer Modern Math"), +                 text(body: [ ], -       font: "New Computer Modern Math"), -  text(body: [←], -       font: "New Computer Modern Math"), -  text(body: [+                      font: "New Computer Modern Math"), +                 text(body: [←], +                      font: "New Computer Modern Math"), +                 text(body: [ ], -       font: "New Computer Modern Math"), -  text(body: [⇝], -       font: "New Computer Modern Math"), -  text(body: [+                      font: "New Computer Modern Math"), +                 text(body: [⇝], +                      font: "New Computer Modern Math"), +                 text(body: [ ], -       font: "New Computer Modern Math"), -  text(body: [⤤], -       font: "New Computer Modern Math"), -  parbreak(), -  text(body: [→], -       font: "New Computer Modern Math"), -  text(body: [this and this], -       font: "New Computer Modern Math"), -  text(body: [←], -       font: "New Computer Modern Math"), -  parbreak() }+                      font: "New Computer Modern Math"), +                 text(body: [⤤], +                      font: "New Computer Modern Math"), +                 parbreak(), +                 text(body: [→], +                      font: "New Computer Modern Math"), +                 text(body: [this and this], +                      font: "New Computer Modern Math"), +                 text(body: [←], +                      font: "New Computer Modern Math"), +                 parbreak() })
test/out/text/tracking-spacing-00.out view
@@ -66,9 +66,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ I saw Zoe yӛsterday, on the tram.], -       tracking: -1.0e-2em), -  parbreak() }+                      tracking: -1.0e-2em), +                 parbreak() })
test/out/text/tracking-spacing-01.out view
@@ -59,10 +59,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [I’m in]), -  text(body: text(body: [ spaace]), -       tracking: 0.15em + 1.5pt), -  text(body: [!]), -  parbreak() }+                 text(body: [I’m in]), +                 text(body: text(body: [ spaace]), +                      tracking: 0.15em + 1.5pt), +                 text(body: [!]), +                 parbreak() })
test/out/text/tracking-spacing-02.out view
@@ -64,15 +64,15 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: ("PT Sans", -              "Noto Serif Hebrew")), -  text(body: [+                      font: ("PT Sans", +                             "Noto Serif Hebrew")), +                 text(body: [ טֶקסט], -       font: ("PT Sans", -              "Noto Serif Hebrew"), -       tracking: 0.3em), -  parbreak() }+                      font: ("PT Sans", +                             "Noto Serif Hebrew"), +                      tracking: 0.3em), +                 parbreak() })
test/out/text/tracking-spacing-03.out view
@@ -51,9 +51,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ النص], -       tracking: 0.3em), -  parbreak() }+                      tracking: 0.3em), +                 parbreak() })
test/out/text/tracking-spacing-04.out view
@@ -58,9 +58,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ My text has spaces.], -       spacing: 1.0em), -  parbreak() }+                      spacing: 1.0em), +                 parbreak() })
test/out/text/tracking-spacing-05.out view
@@ -59,9 +59,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ This is tight.], -       spacing: 1.0pt + 50%), -  parbreak() }+                      spacing: 1.0pt + 50%), +                 parbreak() })
test/out/visualize/image-00.out view
@@ -66,13 +66,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  image(path: "test/assets/files/rhino.png"), -  parbreak(), -  text(body: [+                 image(path: "test/assets/files/rhino.png"), +                 parbreak(), +                 text(body: [ ]), -  image(path: "test/assets/files/tiger.jpg"), -  parbreak() }+                 image(path: "test/assets/files/tiger.jpg"), +                 parbreak() })
test/out/visualize/image-01.out view
@@ -99,24 +99,24 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  box(body: image(path: "test/assets/files/rhino.png", -                  width: 30.0pt)), -  text(body: [+                 box(body: image(path: "test/assets/files/rhino.png", +                                 width: 30.0pt)), +                 text(body: [ ]), -  box(body: image(height: 30.0pt, -                  path: "test/assets/files/rhino.png")), -  parbreak(), -  image(fit: "stretch", -        height: 20.0pt, -        path: "test/assets/files/monkey.svg", -        width: 100%), -  parbreak(), -  align(alignment: Axes(right, bottom), -        body: image(alt: "A tiger", -                    path: "test/assets/files/tiger.jpg", -                    width: 40.0pt)), -  parbreak() }+                 box(body: image(height: 30.0pt, +                                 path: "test/assets/files/rhino.png")), +                 parbreak(), +                 image(fit: "stretch", +                       height: 20.0pt, +                       path: "test/assets/files/monkey.svg", +                       width: 100%), +                 parbreak(), +                 align(alignment: Axes(right, bottom), +                       body: image(alt: "A tiger", +                                   path: "test/assets/files/tiger.jpg", +                                   width: 40.0pt)), +                 parbreak() })
test/out/visualize/image-02.out view
@@ -91,25 +91,25 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  grid(children: (image(fit: "contain", -                        height: 100%, -                        path: "test/assets/files/tiger.jpg", -                        width: 100%), -                  image(fit: "cover", -                        height: 100%, -                        path: "test/assets/files/tiger.jpg", -                        width: 100%), -                  image(fit: "stretch", -                        height: 100%, -                        path: "test/assets/files/monkey.svg", -                        width: 100%)), -       columns: (1.0fr, -                 1.0fr, -                 1.0fr), -       gutter: 3.0pt, -       rows: 100%), -  parbreak() }+                 grid(children: (image(fit: "contain", +                                       height: 100%, +                                       path: "test/assets/files/tiger.jpg", +                                       width: 100%), +                                 image(fit: "cover", +                                       height: 100%, +                                       path: "test/assets/files/tiger.jpg", +                                       width: 100%), +                                 image(fit: "stretch", +                                       height: 100%, +                                       path: "test/assets/files/monkey.svg", +                                       width: 100%)), +                      columns: (1.0fr, +                                1.0fr, +                                1.0fr), +                      gutter: 3.0pt, +                      rows: 100%), +                 parbreak() })
test/out/visualize/image-03.out view
@@ -58,10 +58,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ Stuff ]), -  image(path: "test/assets/files/rhino.png"), -  parbreak() }+                 image(path: "test/assets/files/rhino.png"), +                 parbreak() })
test/out/visualize/image-04.out view
@@ -60,11 +60,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [A ]), -  box(body: image(height: 1.0cm, -                  path: "test/assets/files/tiger.jpg", -                  width: 80%)), -  text(body: [ B]), -  parbreak() }+                 text(body: [A ]), +                 box(body: image(height: 1.0cm, +                                 path: "test/assets/files/tiger.jpg", +                                 width: 80%)), +                 text(body: [ B]), +                 parbreak() })
test/out/visualize/image-05.out view
@@ -49,7 +49,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  image(path: "test/assets/files/pattern.svg"), -  parbreak() }+                 image(path: "test/assets/files/pattern.svg"), +                 parbreak() })
test/out/visualize/line-00.out view
@@ -130,22 +130,23 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  box(body: { place(body: line(end: (0.4em, -                                     0.0pt), -                               stroke: 0.75pt)), -              place(body: line(end: (0.0pt, -                                     0.0pt), -                               start: (0.0pt, 0.4em), -                               stroke: 0.75pt)), -              line(end: (0.6em, 0.6em), -                   stroke: 0.75pt) }), -  text(body: [ Hello ]), -  box(body: line(length: 1.0cm)), -  text(body: [!]), -  parbreak(), -  line(end: (70%, 50%)), -  parbreak() }+                 box(body: { place(body: line(end: (0.4em, +                                                    0.0pt), +                                              stroke: 0.75pt)), +                             place(body: line(end: (0.0pt, +                                                    0.0pt), +                                              start: (0.0pt, +                                                      0.4em), +                                              stroke: 0.75pt)), +                             line(end: (0.6em, 0.6em), +                                  stroke: 0.75pt) }), +                 text(body: [ Hello ]), +                 box(body: line(length: 1.0cm)), +                 text(body: [!]), +                 parbreak(), +                 line(end: (70%, 50%)), +                 parbreak() })
test/out/visualize/line-01.out view
@@ -328,852 +328,852 @@ , ParBreak ] --- evaluated ----{ text(body: [-]), -  text(body: [-]), -  text(body: [-]), -  parbreak(), -  parbreak(), -  align(alignment: center, -        body: grid(children: (box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt), -                              box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt), -                              box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt), -                              box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt), -                              box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt), -                              box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt), -                              box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt), -                              box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt), -                              box(body: { text(body: [-]), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          text(body: [-], -                                               spacing: 0%), -                                          v(amount: 30%), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (9%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (38%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(length: 30%, -                                                           start: (57%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: -30%, -                                                           start: (88%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 252.0deg, -                                                           length: 30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 36.0deg, -                                                           length: -30%, -                                                           start: (73%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -36.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: -72.0deg, -                                                           length: 30%, -                                                           start: (25%, -                                                                   48%), -                                                           stroke: 0.5pt)), -                                          text(body: [-], -                                               spacing: 0%), -                                          place(body: line(angle: 34.0deg, -                                                           length: 32%, -                                                           start: (8%, -                                                                   2%), -                                                           stroke: 0.5pt)), -                                          parbreak() }, -                                  height: 20.0pt, -                                  width: 20.0pt)), -                   column-gutter: 10.0pt, -                   columns: 3)), -  parbreak() }+document(body: { text(body: [+]), +                 text(body: [+]), +                 text(body: [+]), +                 parbreak(), +                 parbreak(), +                 align(alignment: center, +                       body: grid(children: (box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt), +                                             box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt), +                                             box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt), +                                             box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt), +                                             box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt), +                                             box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt), +                                             box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt), +                                             box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt), +                                             box(body: { text(body: [+]), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         v(amount: 30%), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (9%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (38%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(length: 30%, +                                                                          start: (57%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: -30%, +                                                                          start: (88%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 252.0deg, +                                                                          length: 30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 36.0deg, +                                                                          length: -30%, +                                                                          start: (73%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -36.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: -72.0deg, +                                                                          length: 30%, +                                                                          start: (25%, +                                                                                  48%), +                                                                          stroke: 0.5pt)), +                                                         text(body: [+], +                                                              spacing: 0%), +                                                         place(body: line(angle: 34.0deg, +                                                                          length: 32%, +                                                                          start: (8%, +                                                                                  2%), +                                                                          stroke: 0.5pt)), +                                                         parbreak() }, +                                                 height: 20.0pt, +                                                 width: 20.0pt)), +                                  column-gutter: 10.0pt, +                                  columns: 3)), +                 parbreak() })
test/out/visualize/path-00.out view
@@ -238,41 +238,68 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  table(align: Axes(center, horizon), -        children: (path(closed: true, -                        fill: rgb(100%,25%,21%,100%), -                        vertices: (((0%, 0%), -                                    (4%, -4%)), -                                   ((50%, 50%), (4%, -4%)), -                                   ((0%, 50%), (4%, 4%)), -                                   ((50%, 0%), (4%, 4%)))), -                   path(fill: rgb(69%,5%,78%,100%), -                        stroke: 1.0pt, -                        vertices: ((0.0pt, 0.0pt), -                                   (30.0pt, 30.0pt), -                                   (0.0pt, 30.0pt), -                                   (30.0pt, 0.0pt))), -                   path(closed: true, -                        fill: rgb(0%,45%,85%,100%), -                        stroke: 1.0pt, -                        vertices: (((30%, 0%), -                                    (35%, 30%), -                                    (-20%, 0%)), -                                   ((30%, 60%), -                                    (-20%, 0%), -                                    (0%, 0%)), -                                   ((50%, 30%), -                                    (60%, -30%), -                                    (60%, 0%)))), -                   path(closed: true, -                        stroke: 5.0pt, -                        vertices: ((0.0pt, 30.0pt), -                                   (30.0pt, 30.0pt), -                                   (15.0pt, 0.0pt)))), -        columns: (1.0fr, 1.0fr), -        rows: (1.0fr, 1.0fr)), -  parbreak() }+                 table(align: Axes(center, horizon), +                       children: (path(closed: true, +                                       fill: rgb(100%,25%,21%,100%), +                                       vertices: (((0%, +                                                    0%), +                                                   (4%, +                                                    -4%)), +                                                  ((50%, +                                                    50%), +                                                   (4%, +                                                    -4%)), +                                                  ((0%, +                                                    50%), +                                                   (4%, +                                                    4%)), +                                                  ((50%, +                                                    0%), +                                                   (4%, +                                                    4%)))), +                                  path(fill: rgb(69%,5%,78%,100%), +                                       stroke: 1.0pt, +                                       vertices: ((0.0pt, +                                                   0.0pt), +                                                  (30.0pt, +                                                   30.0pt), +                                                  (0.0pt, +                                                   30.0pt), +                                                  (30.0pt, +                                                   0.0pt))), +                                  path(closed: true, +                                       fill: rgb(0%,45%,85%,100%), +                                       stroke: 1.0pt, +                                       vertices: (((30%, +                                                    0%), +                                                   (35%, +                                                    30%), +                                                   (-20%, +                                                    0%)), +                                                  ((30%, +                                                    60%), +                                                   (-20%, +                                                    0%), +                                                   (0%, +                                                    0%)), +                                                  ((50%, +                                                    30%), +                                                   (60%, +                                                    -30%), +                                                   (60%, +                                                    0%)))), +                                  path(closed: true, +                                       stroke: 5.0pt, +                                       vertices: ((0.0pt, +                                                   30.0pt), +                                                  (30.0pt, +                                                   30.0pt), +                                                  (15.0pt, +                                                   0.0pt)))), +                       columns: (1.0fr, 1.0fr), +                       rows: (1.0fr, 1.0fr)), +                 parbreak() })
test/out/visualize/polygon-00.out view
@@ -277,73 +277,73 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: 0.75pt, -          vertices: ()), -  text(body: [+                 parbreak(), +                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: 0.75pt, +                         vertices: ()), +                 text(body: [ ]), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: 0.75pt, -          vertices: ((0.0em, 0.0pt))), -  text(body: [+                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: 0.75pt, +                         vertices: ((0.0em, 0.0pt))), +                 text(body: [ ]), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: 0.75pt, -          vertices: ((0.0pt, 0.0pt), -                     (10.0pt, 0.0pt))), -  parbreak(), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: 0.75pt, -          vertices: ((5.0pt, 0.0pt), -                     (0.0pt, 10.0pt), -                     (10.0pt, 10.0pt))), -  text(body: [+                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: 0.75pt, +                         vertices: ((0.0pt, 0.0pt), +                                    (10.0pt, 0.0pt))), +                 parbreak(), +                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: 0.75pt, +                         vertices: ((5.0pt, 0.0pt), +                                    (0.0pt, 10.0pt), +                                    (10.0pt, 10.0pt))), +                 text(body: [ ]), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: 0.75pt, -          vertices: ((0.0pt, 0.0pt), -                     (5.0pt, 5.0pt), -                     (10.0pt, 0.0pt), -                     (15.0pt, 5.0pt), -                     (5.0pt, 10.0pt))), -  text(body: [+                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: 0.75pt, +                         vertices: ((0.0pt, 0.0pt), +                                    (5.0pt, 5.0pt), +                                    (10.0pt, 0.0pt), +                                    (15.0pt, 5.0pt), +                                    (5.0pt, 10.0pt))), +                 text(body: [ ]), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: none, -          vertices: ((5.0pt, 0.0pt), -                     (0.0pt, 10.0pt), -                     (10.0pt, 10.0pt))), -  text(body: [+                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: none, +                         vertices: ((5.0pt, 0.0pt), +                                    (0.0pt, 10.0pt), +                                    (10.0pt, 10.0pt))), +                 text(body: [ ]), -  polygon(fill: none, -          stroke: 3.0pt, -          vertices: ((5.0pt, 0.0pt), -                     (0.0pt, 10.0pt), -                     (10.0pt, 10.0pt))), -  parbreak(), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: 0.75pt, -          vertices: ((0.0pt, 0.0pt), -                     (100%, 5.0pt), -                     (50%, 10.0pt))), -  parbreak(), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: 0.75pt, -          vertices: ((0.0pt, 5.0pt), -                     (5.0pt, 0.0pt), -                     (0.0pt, 10.0pt), -                     (5.0pt, 15.0pt))), -  parbreak(), -  polygon(fill: rgb(0%,45%,85%,100%), -          stroke: 0.75pt, -          vertices: ((0.0pt, 10.0pt), -                     (30.0pt, 20.0pt), -                     (0.0pt, 30.0pt), -                     (20.0pt, 0.0pt), -                     (20.0pt, 35.0pt))), -  parbreak() }+                 polygon(fill: none, +                         stroke: 3.0pt, +                         vertices: ((5.0pt, 0.0pt), +                                    (0.0pt, 10.0pt), +                                    (10.0pt, 10.0pt))), +                 parbreak(), +                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: 0.75pt, +                         vertices: ((0.0pt, 0.0pt), +                                    (100%, 5.0pt), +                                    (50%, 10.0pt))), +                 parbreak(), +                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: 0.75pt, +                         vertices: ((0.0pt, 5.0pt), +                                    (5.0pt, 0.0pt), +                                    (0.0pt, 10.0pt), +                                    (5.0pt, 15.0pt))), +                 parbreak(), +                 polygon(fill: rgb(0%,45%,85%,100%), +                         stroke: 0.75pt, +                         vertices: ((0.0pt, 10.0pt), +                                    (30.0pt, 20.0pt), +                                    (0.0pt, 30.0pt), +                                    (20.0pt, 0.0pt), +                                    (20.0pt, 35.0pt))), +                 parbreak() })
test/out/visualize/shape-aspect-00.out view
@@ -109,22 +109,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  stack(children: (square(body: align(alignment: bottom, -                                      body: text(body: [A])), -                          width: 50%), -                   square(height: 50%), -                   stack(children: (square(size: 10.0pt), -                                    square(body: align(alignment: bottom, -                                                       body: text(body: [B])), -                                           size: 20.0pt)))), -        dir: ltr, -        spacing: 1.0fr), -  parbreak() }+                 stack(children: (square(body: align(alignment: bottom, +                                                     body: text(body: [A])), +                                         width: 50%), +                                  square(height: 50%), +                                  stack(children: (square(size: 10.0pt), +                                                   square(body: align(alignment: bottom, +                                                                      body: text(body: [B])), +                                                          size: 20.0pt)))), +                       dir: ltr, +                       spacing: 1.0fr), +                 parbreak() })
test/out/visualize/shape-aspect-01.out view
@@ -101,22 +101,22 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], size: 8.0pt), -  box(body: square(body: { text(body: [+                 box(body: square(body: { text(body: [ Hey there, ], -                                size: 8.0pt), -                           align(alignment: Axes(center, bottom), -                                 body: rotate(angle: 180.0deg, -                                              body: text(body: [you!], -                                                         size: 8.0pt))), -                           parbreak() }, -                   inset: 4.0pt)), -  text(body: [+                                               size: 8.0pt), +                                          align(alignment: Axes(center, bottom), +                                                body: rotate(angle: 180.0deg, +                                                             body: text(body: [you!], +                                                                        size: 8.0pt))), +                                          parbreak() }, +                                  inset: 4.0pt)), +                 text(body: [ ], size: 8.0pt), -  box(body: circle(body: align(alignment: Axes(center, horizon), -                               body: text(body: [Hey.], -                                          size: 8.0pt)))), -  parbreak() }+                 box(body: circle(body: align(alignment: Axes(center, horizon), +                                              body: text(body: [Hey.], +                                                         size: 8.0pt)))), +                 parbreak() })
test/out/visualize/shape-aspect-02.out view
@@ -63,12 +63,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  stack(children: (square(height: 40.0pt, -                          width: 20.0pt), -                   circle(height: 100.0pt, -                          width: 20%)), -        dir: ltr, -        spacing: 2.0pt), -  parbreak() }+                 stack(children: (square(height: 40.0pt, +                                         width: 20.0pt), +                                  circle(height: 100.0pt, +                                         width: 20%)), +                       dir: ltr, +                       spacing: 2.0pt), +                 parbreak() })
test/out/visualize/shape-aspect-03.out view
@@ -68,11 +68,11 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  stack(children: (square(fill: rgb(100%,25%,21%,100%)), -                   square(fill: rgb(18%,80%,25%,100%))), -        dir: ltr), -  parbreak() }+                 stack(children: (square(fill: rgb(100%,25%,21%,100%)), +                                  square(fill: rgb(18%,80%,25%,100%))), +                       dir: ltr), +                 parbreak() })
test/out/visualize/shape-aspect-04.out view
@@ -74,13 +74,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  stack(children: (circle(radius: 5.0pt), -                   circle(width: 10%), -                   circle(height: 50%)), -        dir: ltr, -        spacing: 2.0pt), -  parbreak() }+                 stack(children: (circle(radius: 5.0pt), +                                  circle(width: 10%), +                                  circle(height: 50%)), +                       dir: ltr, +                       spacing: 2.0pt), +                 parbreak() })
test/out/visualize/shape-aspect-05.out view
@@ -69,13 +69,13 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  square(width: 100%), -  text(body: [+                 square(width: 100%), +                 text(body: [ ]), -  square(body: text(body: [Hello there]), -         width: 100%), -  parbreak() }+                 square(body: text(body: [Hello there]), +                        width: 100%), +                 parbreak() })
test/out/visualize/shape-circle-00.out view
@@ -59,10 +59,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  box(body: circle()), -  text(body: [+                 box(body: circle()), +                 text(body: [ ]), -  box(body: circle(body: text(body: [Hey]))), -  parbreak() }+                 box(body: circle(body: text(body: [Hey]))), +                 parbreak() })
test/out/visualize/shape-circle-01.out view
@@ -196,54 +196,54 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [Auto-sized circle.+                 parbreak(), +                 text(body: [Auto-sized circle. ]), -  circle(body: align(alignment: Axes(center, horizon), -                     body: text(body: [But, soft!])), -         fill: rgb(92%,32%,47%,100%), -         inset: 0.0pt, -         stroke: (thickness: 2.0pt,-                  color: rgb(0%,0%,0%,100%))), -  parbreak(), -  text(body: [Center-aligned rect in auto-sized circle.+                 circle(body: align(alignment: Axes(center, horizon), +                                    body: text(body: [But, soft!])), +                        fill: rgb(92%,32%,47%,100%), +                        inset: 0.0pt, +                        stroke: (thickness: 2.0pt,+                                 color: rgb(0%,0%,0%,100%))), +                 parbreak(), +                 text(body: [Center-aligned rect in auto-sized circle. ]), -  circle(body: align(alignment: Axes(center, horizon), -                     body: rect(body: text(body: [But, soft!]), -                                fill: rgb(18%,80%,25%,100%), -                                inset: 5.0pt)), -         fill: rgb(100%,25%,21%,100%), -         inset: 0.0pt, -         stroke: rgb(18%,80%,25%,100%)), -  parbreak(), -  text(body: [Rect in auto-sized circle.+                 circle(body: align(alignment: Axes(center, horizon), +                                    body: rect(body: text(body: [But, soft!]), +                                               fill: rgb(18%,80%,25%,100%), +                                               inset: 5.0pt)), +                        fill: rgb(100%,25%,21%,100%), +                        inset: 0.0pt, +                        stroke: rgb(18%,80%,25%,100%)), +                 parbreak(), +                 text(body: [Rect in auto-sized circle. ]), -  circle(body: rect(body: { text(body: [+                 circle(body: rect(body: { text(body: [ ]), -                            text(body: [+                                           text(body: [ But, soft! what light through yonder window breaks?], -                                 size: 8.0pt), -                            parbreak() }, -                    fill: rgb(18%,80%,25%,100%), -                    inset: 4.0pt, -                    stroke: rgb(100%,100%,100%,100%)), -         fill: rgb(100%,25%,21%,100%), -         inset: 0.0pt), -  parbreak(), -  text(body: [Expanded by height.+                                                size: 8.0pt), +                                           parbreak() }, +                                   fill: rgb(18%,80%,25%,100%), +                                   inset: 4.0pt, +                                   stroke: rgb(100%,100%,100%,100%)), +                        fill: rgb(100%,25%,21%,100%), +                        inset: 0.0pt), +                 parbreak(), +                 text(body: [Expanded by height. ], -       size: 8.0pt), -  circle(body: align(alignment: center, -                     body: { text(body: [A ], -                                  size: 8.0pt), -                             linebreak(), -                             text(body: [B ], -                                  size: 8.0pt), -                             linebreak(), -                             text(body: [C], -                                  size: 8.0pt) }), -         inset: 0.0pt, -         stroke: rgb(0%,0%,0%,100%)), -  parbreak() }+                      size: 8.0pt), +                 circle(body: align(alignment: center, +                                    body: { text(body: [A ], +                                                 size: 8.0pt), +                                            linebreak(), +                                            text(body: [B ], +                                                 size: 8.0pt), +                                            linebreak(), +                                            text(body: [C], +                                                 size: 8.0pt) }), +                        inset: 0.0pt, +                        stroke: rgb(0%,0%,0%,100%)), +                 parbreak() })
test/out/visualize/shape-circle-02.out view
@@ -56,10 +56,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  rect(body: circle(fill: rgb(18%,80%,25%,100%)), -       fill: rgb(100%,25%,21%,100%), -       height: 30.0pt, -       width: 40.0pt), -  parbreak() }+                 rect(body: circle(fill: rgb(18%,80%,25%,100%)), +                      fill: rgb(100%,25%,21%,100%), +                      height: 30.0pt, +                      width: 40.0pt), +                 parbreak() })
test/out/visualize/shape-circle-03.out view
@@ -109,35 +109,35 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ], -       fill: rgb(100%,100%,100%,100%)), -  rect(body: { text(body: [+                      fill: rgb(100%,100%,100%,100%)), +                 rect(body: { text(body: [ ], -                    fill: rgb(100%,100%,100%,100%)), -               text(body: [+                                   fill: rgb(100%,100%,100%,100%)), +                              text(body: [ ], -                    fill: rgb(100%,100%,100%,100%)), -               stack(children: (1.0fr, -                                circle(body: text(body: [A], -                                                  fill: rgb(100%,100%,100%,100%)), -                                       fill: rgb(13%,61%,67%,100%), -                                       radius: 10.0pt), -                                circle(body: text(body: [B], -                                                  fill: rgb(100%,100%,100%,100%)), -                                       fill: rgb(13%,61%,67%,100%), -                                       height: 60%), -                                circle(body: text(body: [C], -                                                  fill: rgb(100%,100%,100%,100%)), -                                       fill: rgb(13%,61%,67%,100%), -                                       width: 20.0pt + 20%), -                                1.0fr), -                     dir: ltr, -                     spacing: 1.0fr), -               parbreak() }, -       fill: rgb(3%,3%,3%,100%), -       height: 50.0pt, -       inset: 0.0pt, -       width: 100.0pt) }+                                   fill: rgb(100%,100%,100%,100%)), +                              stack(children: (1.0fr, +                                               circle(body: text(body: [A], +                                                                 fill: rgb(100%,100%,100%,100%)), +                                                      fill: rgb(13%,61%,67%,100%), +                                                      radius: 10.0pt), +                                               circle(body: text(body: [B], +                                                                 fill: rgb(100%,100%,100%,100%)), +                                                      fill: rgb(13%,61%,67%,100%), +                                                      height: 60%), +                                               circle(body: text(body: [C], +                                                                 fill: rgb(100%,100%,100%,100%)), +                                                      fill: rgb(13%,61%,67%,100%), +                                                      width: 20.0pt + 20%), +                                               1.0fr), +                                    dir: ltr, +                                    spacing: 1.0fr), +                              parbreak() }, +                      fill: rgb(3%,3%,3%,100%), +                      height: 50.0pt, +                      inset: 0.0pt, +                      width: 100.0pt) })
test/out/visualize/shape-ellipse-00.out view
@@ -47,7 +47,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  ellipse(), -  parbreak() }+                 ellipse(), +                 parbreak() })
test/out/visualize/shape-ellipse-01.out view
@@ -184,52 +184,52 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  text(body: [Rect in ellipse in fixed rect.+                 parbreak(), +                 text(body: [Rect in ellipse in fixed rect. ]), -  rect(body: ellipse(body: rect(body: align(alignment: Axes(center, horizon), -                                            body: { text(body: [+                 rect(body: ellipse(body: rect(body: align(alignment: Axes(center, horizon), +                                                           body: { text(body: [ Stuff inside an ellipse!]), -                                                    parbreak() }), -                                fill: rgb(18%,80%,25%,100%), -                                height: 100%, -                                inset: 0.0pt, -                                width: 100%), -                     fill: rgb(100%,25%,21%,100%), -                     height: 100%, -                     inset: 0.0pt, -                     width: 100%), -       fill: rgb(16%,38%,10%,100%), -       height: 2.0cm, -       inset: 0.0pt, -       width: 3.0cm), -  parbreak(), -  text(body: [Auto-sized ellipse.+                                                                   parbreak() }), +                                               fill: rgb(18%,80%,25%,100%), +                                               height: 100%, +                                               inset: 0.0pt, +                                               width: 100%), +                                    fill: rgb(100%,25%,21%,100%), +                                    height: 100%, +                                    inset: 0.0pt, +                                    width: 100%), +                      fill: rgb(16%,38%,10%,100%), +                      height: 2.0cm, +                      inset: 0.0pt, +                      width: 3.0cm), +                 parbreak(), +                 text(body: [Auto-sized ellipse. ]), -  ellipse(body: { text(body: [+                 ellipse(body: { text(body: [ ]), -                  text(body: [+                                 text(body: [ But, soft! what light through yonder window breaks?], -                       size: 8.0pt), -                  parbreak() }, -          fill: rgb(18%,80%,25%,100%), -          inset: 3.0pt, -          stroke: (thickness: 3.0pt,-                   color: rgb(100%,25%,21%,100%))), -  parbreak(), -  text(body: [An inline+                                      size: 8.0pt), +                                 parbreak() }, +                         fill: rgb(18%,80%,25%,100%), +                         inset: 3.0pt, +                         stroke: (thickness: 3.0pt,+                                  color: rgb(100%,25%,21%,100%))), +                 parbreak(), +                 text(body: [An inline ], -       size: 8.0pt), -  box(body: ellipse(height: 6.0pt, -                    inset: 0.0pt, -                    outset: (top: 3.0pt,-                             rest: 5.5pt), -                    width: 8.0pt)), -  text(body: [+                      size: 8.0pt), +                 box(body: ellipse(height: 6.0pt, +                                   inset: 0.0pt, +                                   outset: (top: 3.0pt,+                                            rest: 5.5pt), +                                   width: 8.0pt)), +                 text(body: [ ellipse.], -       size: 8.0pt), -  parbreak() }+                      size: 8.0pt), +                 parbreak() })
test/out/visualize/shape-fill-stroke-00.out view
@@ -170,107 +170,107 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  parbreak(), -  grid(children: (align(alignment: horizon, -                        body: { text(body: [1]), -                                text(body: [.]) }), -                  rect(height: 10.0pt, -                       stroke: none, -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [2]), -                                text(body: [.]) }), -                  rect(height: 10.0pt, -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [3]), -                                text(body: [.]) }), -                  rect(fill: none, -                       height: 10.0pt, -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [4]), -                                text(body: [.]) }), -                  rect(height: 10.0pt, -                       stroke: 2.0pt, -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [5]), -                                text(body: [.]) }), -                  rect(height: 10.0pt, -                       stroke: rgb(13%,61%,67%,100%), -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [6]), -                                text(body: [.]) }), -                  rect(height: 10.0pt, -                       stroke: (thickness: 2.0pt,-                                color: rgb(13%,61%,67%,100%)), -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [7]), -                                text(body: [.]) }), -                  rect(fill: rgb(13%,61%,67%,100%), -                       height: 10.0pt, -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [8]), -                                text(body: [.]) }), -                  rect(fill: rgb(13%,61%,67%,100%), -                       height: 10.0pt, -                       stroke: none, -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [9]), -                                text(body: [.]) }), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 10.0pt, -                       stroke: none, -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [10]), -                                text(body: [.]) }), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 10.0pt, -                       stroke: rgb(18%,80%,25%,100%), -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [11]), -                                text(body: [.]) }), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 10.0pt, -                       stroke: (thickness: 2.0pt,-                                color: rgb(0%,0%,0%,100%)), -                       width: 20.0pt), -                  {  }, -                  align(alignment: horizon, -                        body: { text(body: [12]), -                                text(body: [.]) }), -                  rect(fill: rgb(100%,25%,21%,100%), -                       height: 10.0pt, -                       stroke: (thickness: 2.0pt,-                                color: rgb(18%,80%,25%,100%)), -                       width: 20.0pt), -                  {  }), -       columns: (auto, -                 auto, -                 1.0fr, -                 auto, -                 auto, -                 0.0fr), -       gutter: 5.0pt), -  parbreak() }+                 parbreak(), +                 grid(children: (align(alignment: horizon, +                                       body: { text(body: [1]), +                                               text(body: [.]) }), +                                 rect(height: 10.0pt, +                                      stroke: none, +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [2]), +                                               text(body: [.]) }), +                                 rect(height: 10.0pt, +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [3]), +                                               text(body: [.]) }), +                                 rect(fill: none, +                                      height: 10.0pt, +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [4]), +                                               text(body: [.]) }), +                                 rect(height: 10.0pt, +                                      stroke: 2.0pt, +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [5]), +                                               text(body: [.]) }), +                                 rect(height: 10.0pt, +                                      stroke: rgb(13%,61%,67%,100%), +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [6]), +                                               text(body: [.]) }), +                                 rect(height: 10.0pt, +                                      stroke: (thickness: 2.0pt,+                                               color: rgb(13%,61%,67%,100%)), +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [7]), +                                               text(body: [.]) }), +                                 rect(fill: rgb(13%,61%,67%,100%), +                                      height: 10.0pt, +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [8]), +                                               text(body: [.]) }), +                                 rect(fill: rgb(13%,61%,67%,100%), +                                      height: 10.0pt, +                                      stroke: none, +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [9]), +                                               text(body: [.]) }), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 10.0pt, +                                      stroke: none, +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [10]), +                                               text(body: [.]) }), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 10.0pt, +                                      stroke: rgb(18%,80%,25%,100%), +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [11]), +                                               text(body: [.]) }), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 10.0pt, +                                      stroke: (thickness: 2.0pt,+                                               color: rgb(0%,0%,0%,100%)), +                                      width: 20.0pt), +                                 {  }, +                                 align(alignment: horizon, +                                       body: { text(body: [12]), +                                               text(body: [.]) }), +                                 rect(fill: rgb(100%,25%,21%,100%), +                                      height: 10.0pt, +                                      stroke: (thickness: 2.0pt,+                                               color: rgb(18%,80%,25%,100%)), +                                      width: 20.0pt), +                                 {  }), +                      columns: (auto, +                                auto, +                                1.0fr, +                                auto, +                                auto, +                                0.0fr), +                      gutter: 5.0pt), +                 parbreak() })
test/out/visualize/shape-fill-stroke-01.out view
@@ -123,41 +123,41 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  text(body: [+                 parbreak(), +                 text(body: [ ]), -  box(body: square(size: 10.0pt, -                   stroke: none)), -  text(body: [+                 box(body: square(size: 10.0pt, +                                  stroke: none)), +                 text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  box(body: square(size: 10.0pt, -                   stroke: auto)), -  text(body: [+                 box(body: square(size: 10.0pt, +                                  stroke: auto)), +                 text(body: [ ]), -  box(body: square(fill: rgb(22%,80%,80%,100%), -                   size: 10.0pt, -                   stroke: auto)), -  text(body: [+                 box(body: square(fill: rgb(22%,80%,80%,100%), +                                  size: 10.0pt, +                                  stroke: auto)), +                 text(body: [ ]), -  box(body: square(size: 10.0pt, -                   stroke: 2.0pt)), -  text(body: [+                 box(body: square(size: 10.0pt, +                                  stroke: 2.0pt)), +                 text(body: [ ]), -  box(body: square(size: 10.0pt, -                   stroke: rgb(0%,45%,85%,100%))), -  text(body: [+                 box(body: square(size: 10.0pt, +                                  stroke: rgb(0%,45%,85%,100%))), +                 text(body: [ ]), -  box(body: square(fill: rgb(22%,80%,80%,100%), -                   size: 10.0pt, -                   stroke: rgb(0%,45%,85%,100%))), -  text(body: [+                 box(body: square(fill: rgb(22%,80%,80%,100%), +                                  size: 10.0pt, +                                  stroke: rgb(0%,45%,85%,100%))), +                 text(body: [ ]), -  box(body: square(fill: rgb(22%,80%,80%,100%), -                   size: 10.0pt, -                   stroke: (thickness: 2.0pt,-                            color: rgb(0%,45%,85%,100%)))), -  parbreak() }+                 box(body: square(fill: rgb(22%,80%,80%,100%), +                                  size: 10.0pt, +                                  stroke: (thickness: 2.0pt,+                                           color: rgb(0%,45%,85%,100%)))), +                 parbreak() })
test/out/visualize/shape-fill-stroke-02.out view
@@ -80,20 +80,20 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  text(body: [+                 text(body: [ ], -       font: "Roboto"), -  square(body: align(alignment: Axes(center, horizon), -                     body: strong(body: text(body: [G], -                                             font: "Roboto"))), -         inset: 8.0pt, -         radius: 100%, -         stroke: (left: rgb(100%,25%,21%,100%),-                  top: rgb(100%,86%,0%,100%),-                  right: rgb(18%,80%,25%,100%),-                  bottom: rgb(0%,45%,85%,100%))), -  parbreak() }+                      font: "Roboto"), +                 square(body: align(alignment: Axes(center, horizon), +                                    body: strong(body: text(body: [G], +                                                            font: "Roboto"))), +                        inset: 8.0pt, +                        radius: 100%, +                        stroke: (left: rgb(100%,25%,21%,100%),+                                 top: rgb(100%,86%,0%,100%),+                                 right: rgb(18%,80%,25%,100%),+                                 bottom: rgb(0%,45%,85%,100%))), +                 parbreak() })
test/out/visualize/shape-rect-00.out view
@@ -47,7 +47,7 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  rect(), -  parbreak() }+                 rect(), +                 parbreak() })
test/out/visualize/shape-rect-01.out view
@@ -238,58 +238,58 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  rect(body: text(body: [Textbox]), -       fill: rgb(18%,80%,25%,100%)), -  parbreak(), -  block(body: rect(fill: rgb(27%,70%,76%,100%), -                   height: 15.0pt, -                   stroke: (thickness: 2.0pt,-                            color: rgb(13%,28%,58%,100%)))), -  parbreak(), -  rect(body: text(body: [Fixed and padded]), -       fill: rgb(58%,31%,83%,100%), -       width: 2.0cm), -  parbreak(), -  rect(body: text(body: [Topleft]), -       fill: rgb(45%,29%,92%,100%), -       height: 1.0cm, -       width: 100%), -  parbreak(), -  text(body: [{]), -  box(body: rect(fill: rgb(83%,80%,40%,100%), -                 height: 7.0pt, -                 width: 0.5in)), -  text(body: [+                 parbreak(), +                 rect(body: text(body: [Textbox]), +                      fill: rgb(18%,80%,25%,100%)), +                 parbreak(), +                 block(body: rect(fill: rgb(27%,70%,76%,100%), +                                  height: 15.0pt, +                                  stroke: (thickness: 2.0pt,+                                           color: rgb(13%,28%,58%,100%)))), +                 parbreak(), +                 rect(body: text(body: [Fixed and padded]), +                      fill: rgb(58%,31%,83%,100%), +                      width: 2.0cm), +                 parbreak(), +                 rect(body: text(body: [Topleft]), +                      fill: rgb(45%,29%,92%,100%), +                      height: 1.0cm, +                      width: 100%), +                 parbreak(), +                 text(body: [{]), +                 box(body: rect(fill: rgb(83%,80%,40%,100%), +                                height: 7.0pt, +                                width: 0.5in)), +                 text(body: [ ]), -  box(body: rect(fill: rgb(92%,83%,40%,100%), -                 height: 7.0pt, -                 width: 0.5in)), -  text(body: [+                 box(body: rect(fill: rgb(92%,83%,40%,100%), +                                height: 7.0pt, +                                width: 0.5in)), +                 text(body: [ ]), -  box(body: rect(fill: rgb(89%,74%,38%,100%), -                 height: 7.0pt, -                 width: 0.5in)), -  text(body: [}]), -  parbreak(), -  stack(children: (rect(radius: 60%, -                        width: 2.0cm), -                   rect(radius: (left: 10.0pt,-                                 right: 5.0pt), -                        width: 1.0cm), -                   rect(radius: (top-left: 2.0pt,-                                 top-right: 5.0pt,-                                 bottom-right: 8.0pt,-                                 bottom-left: 11.0pt), -                        width: 1.25cm)), -        dir: ltr, -        spacing: 1.0fr), -  parbreak(), -  text(body: [+                 box(body: rect(fill: rgb(89%,74%,38%,100%), +                                height: 7.0pt, +                                width: 0.5in)), +                 text(body: [}]), +                 parbreak(), +                 stack(children: (rect(radius: 60%, +                                       width: 2.0cm), +                                  rect(radius: (left: 10.0pt,+                                                right: 5.0pt), +                                       width: 1.0cm), +                                  rect(radius: (top-left: 2.0pt,+                                                top-right: 5.0pt,+                                                bottom-right: 8.0pt,+                                                bottom-left: 11.0pt), +                                       width: 1.25cm)), +                       dir: ltr, +                       spacing: 1.0fr), +                 parbreak(), +                 text(body: [ ]), -  rect(fill: rgb(0%,100%,43%,100%), -       stroke: (x: 5.0pt, y: 1.0pt), -       width: 100%), -  parbreak() }+                 rect(fill: rgb(0%,100%,43%,100%), +                      stroke: (x: 5.0pt, y: 1.0pt), +                      width: 100%), +                 parbreak() })
test/out/visualize/shape-rounded-00.out view
@@ -58,10 +58,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  rect(radius: -20.0pt), -  text(body: [+                 rect(radius: -20.0pt), +                 text(body: [ ]), -  square(radius: 30.0pt), -  parbreak() }+                 square(radius: 30.0pt), +                 parbreak() })
test/out/visualize/shape-square-00.out view
@@ -59,10 +59,10 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  box(body: square()), -  text(body: [+                 box(body: square()), +                 text(body: [ ]), -  box(body: square(body: text(body: [hey!]))), -  parbreak() }+                 box(body: square(body: text(body: [hey!]))), +                 parbreak() })
test/out/visualize/shape-square-01.out view
@@ -64,14 +64,14 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  square(body: { text(body: [+                 square(body: { text(body: [ ]), -                 text(body: [+                                text(body: [ Typst], -                      fill: rgb(100%,100%,100%,100%), -                      weight: "bold"), -                 parbreak() }, -         fill: rgb(13%,61%,67%,100%)), -  parbreak() }+                                     fill: rgb(100%,100%,100%,100%), +                                     weight: "bold"), +                                parbreak() }, +                        fill: rgb(13%,61%,67%,100%)), +                 parbreak() })
test/out/visualize/shape-square-02.out view
@@ -73,18 +73,18 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  square(body: { text(body: [+                 square(body: { text(body: [ ]), -                 rect(fill: rgb(18%,80%,25%,100%), -                      height: 5.0pt, -                      width: 10.0pt), -                 text(body: [+                                rect(fill: rgb(18%,80%,25%,100%), +                                     height: 5.0pt, +                                     width: 10.0pt), +                                text(body: [ ]), -                 rect(height: 5.0pt, -                      stroke: rgb(18%,80%,25%,100%), -                      width: 40%), -                 parbreak() }, -         fill: rgb(13%,61%,67%,100%)), -  parbreak() }+                                rect(height: 5.0pt, +                                     stroke: rgb(18%,80%,25%,100%), +                                     width: 40%), +                                parbreak() }, +                        fill: rgb(13%,61%,67%,100%)), +                 parbreak() })
test/out/visualize/shape-square-03.out view
@@ -78,12 +78,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  square(body: { text(body: [+                 square(body: { text(body: [ But, soft! what light through yonder window breaks?]), -                 parbreak() }, -         fill: rgb(18%,80%,25%,100%)), -  parbreak() }+                                parbreak() }, +                        fill: rgb(18%,80%,25%,100%)), +                 parbreak() })
test/out/visualize/shape-square-04.out view
@@ -78,12 +78,12 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  square(body: { text(body: [+                 square(body: { text(body: [ But, soft! what light through yonder window breaks?]), -                 parbreak() }, -         fill: rgb(18%,80%,25%,100%)), -  parbreak() }+                                parbreak() }, +                        fill: rgb(18%,80%,25%,100%)), +                 parbreak() })
test/out/visualize/stroke-00.out view
@@ -125,41 +125,41 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  line(length: 60.0pt, -       stroke: rgb(100%,25%,21%,100%)), -  text(body: [+                 line(length: 60.0pt, +                      stroke: rgb(100%,25%,21%,100%)), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: 2.0pt), -  text(body: [+                 line(length: 60.0pt, +                      stroke: 2.0pt), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (thickness: 1.5pt,-                color: rgb(0%,45%,85%,100%))), -  text(body: [+                 line(length: 60.0pt, +                      stroke: (thickness: 1.5pt,+                               color: rgb(0%,45%,85%,100%))), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 1.0pt,-                dash: "dashed")), -  text(body: [+                 line(length: 60.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 1.0pt,+                               dash: "dashed")), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 4.0pt,-                cap: "round")), -  parbreak() }+                 line(length: 60.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 4.0pt,+                               cap: "round")), +                 parbreak() })
test/out/visualize/stroke-01.out view
@@ -96,27 +96,27 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 1.0pt,-                cap: "butt",-                dash: "dash-dotted")), -  text(body: [+                 line(length: 60.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 1.0pt,+                               cap: "butt",+                               dash: "dash-dotted")), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: rgb(0%,45%,85%,100%)), -  text(body: [+                 line(length: 60.0pt, +                      stroke: rgb(0%,45%,85%,100%)), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (dash: none)), -  parbreak() }+                 line(length: 60.0pt, +                      stroke: (dash: none)), +                 parbreak() })
test/out/visualize/stroke-02.out view
@@ -100,28 +100,28 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  rect(height: 20.0pt, -       stroke: rgb(100%,25%,21%,100%), -       width: 20.0pt), -  text(body: [+                 rect(height: 20.0pt, +                      stroke: rgb(100%,25%,21%,100%), +                      width: 20.0pt), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  rect(height: 20.0pt, -       stroke: (rest: rgb(100%,25%,21%,100%),-                top: (paint: rgb(0%,45%,85%,100%),-                      dash: "dashed")), -       width: 20.0pt), -  text(body: [+                 rect(height: 20.0pt, +                      stroke: (rest: rgb(100%,25%,21%,100%),+                               top: (paint: rgb(0%,45%,85%,100%),+                                     dash: "dashed")), +                      width: 20.0pt), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  rect(height: 20.0pt, -       stroke: (thickness: 5.0pt,-                join: "round"), -       width: 20.0pt), -  parbreak() }+                 rect(height: 20.0pt, +                      stroke: (thickness: 5.0pt,+                               join: "round"), +                      width: 20.0pt), +                 parbreak() })
test/out/visualize/stroke-03.out view
@@ -174,55 +174,55 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  line(length: 60.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 1.0pt,-                dash: ("dot", 1.0pt))), -  text(body: [+                 line(length: 60.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 1.0pt,+                               dash: ("dot", 1.0pt))), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 1.0pt,-                dash: ("dot", -                       1.0pt, -                       4.0pt, -                       2.0pt))), -  text(body: [+                 line(length: 60.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 1.0pt,+                               dash: ("dot", +                                      1.0pt, +                                      4.0pt, +                                      2.0pt))), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 1.0pt,-                dash: (array: ("dot", -                               1.0pt, -                               4.0pt, -                               2.0pt),-                       phase: 5.0pt))), -  text(body: [+                 line(length: 60.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 1.0pt,+                               dash: (array: ("dot", +                                              1.0pt, +                                              4.0pt, +                                              2.0pt),+                                      phase: 5.0pt))), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 1.0pt,-                dash: ())), -  text(body: [+                 line(length: 60.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 1.0pt,+                               dash: ())), +                 text(body: [ ]), -  v(amount: 3.0pt), -  text(body: [+                 v(amount: 3.0pt), +                 text(body: [ ]), -  line(length: 60.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 1.0pt,-                dash: (1.0pt, -                       3.0pt, -                       9.0pt))), -  parbreak() }+                 line(length: 60.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 1.0pt,+                               dash: (1.0pt, +                                      3.0pt, +                                      9.0pt))), +                 parbreak() })
test/out/visualize/stroke-04.out view
@@ -176,37 +176,53 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  stack(children: (polygon(stroke: (thickness: 4.0pt,-                                    paint: rgb(0%,45%,85%,100%),-                                    join: "round"), -                           vertices: ((0.0pt, 20.0pt), -                                      (15.0pt, 0.0pt), -                                      (0.0pt, 40.0pt), -                                      (15.0pt, 45.0pt))), -                   polygon(stroke: (thickness: 4.0pt,-                                    paint: rgb(0%,45%,85%,100%),-                                    join: "bevel"), -                           vertices: ((0.0pt, 20.0pt), -                                      (15.0pt, 0.0pt), -                                      (0.0pt, 40.0pt), -                                      (15.0pt, 45.0pt))), -                   polygon(stroke: (thickness: 4.0pt,-                                    paint: rgb(0%,45%,85%,100%),-                                    join: "miter"), -                           vertices: ((0.0pt, 20.0pt), -                                      (15.0pt, 0.0pt), -                                      (0.0pt, 40.0pt), -                                      (15.0pt, 45.0pt))), -                   polygon(stroke: (thickness: 4.0pt,-                                    paint: rgb(0%,45%,85%,100%),-                                    join: "miter",-                                    miter-limit: 20.0), -                           vertices: ((0.0pt, 20.0pt), -                                      (15.0pt, 0.0pt), -                                      (0.0pt, 40.0pt), -                                      (15.0pt, 45.0pt)))), -        dir: ltr, -        spacing: 1.0em), -  parbreak() }+                 stack(children: (polygon(stroke: (thickness: 4.0pt,+                                                   paint: rgb(0%,45%,85%,100%),+                                                   join: "round"), +                                          vertices: ((0.0pt, +                                                      20.0pt), +                                                     (15.0pt, +                                                      0.0pt), +                                                     (0.0pt, +                                                      40.0pt), +                                                     (15.0pt, +                                                      45.0pt))), +                                  polygon(stroke: (thickness: 4.0pt,+                                                   paint: rgb(0%,45%,85%,100%),+                                                   join: "bevel"), +                                          vertices: ((0.0pt, +                                                      20.0pt), +                                                     (15.0pt, +                                                      0.0pt), +                                                     (0.0pt, +                                                      40.0pt), +                                                     (15.0pt, +                                                      45.0pt))), +                                  polygon(stroke: (thickness: 4.0pt,+                                                   paint: rgb(0%,45%,85%,100%),+                                                   join: "miter"), +                                          vertices: ((0.0pt, +                                                      20.0pt), +                                                     (15.0pt, +                                                      0.0pt), +                                                     (0.0pt, +                                                      40.0pt), +                                                     (15.0pt, +                                                      45.0pt))), +                                  polygon(stroke: (thickness: 4.0pt,+                                                   paint: rgb(0%,45%,85%,100%),+                                                   join: "miter",+                                                   miter-limit: 20.0), +                                          vertices: ((0.0pt, +                                                      20.0pt), +                                                     (15.0pt, +                                                      0.0pt), +                                                     (0.0pt, +                                                      40.0pt), +                                                     (15.0pt, +                                                      45.0pt)))), +                       dir: ltr, +                       spacing: 1.0em), +                 parbreak() })
test/out/visualize/stroke-07.out view
@@ -261,67 +261,67 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  text(body: [+                 text(body: [ ]), -  rect(height: 10.0pt, -       stroke: none, -       width: 10.0pt), -  text(body: [+                 rect(height: 10.0pt, +                      stroke: none, +                      width: 10.0pt), +                 text(body: [ ]), -  rect(height: 10.0pt, -       stroke: 0.0pt, -       width: 10.0pt), -  text(body: [+                 rect(height: 10.0pt, +                      stroke: 0.0pt, +                      width: 10.0pt), +                 text(body: [ ]), -  rect(fill: rgb(0%,45%,85%,100%), -       height: 10.0pt, -       stroke: none, -       width: 10.0pt), -  text(body: [+                 rect(fill: rgb(0%,45%,85%,100%), +                      height: 10.0pt, +                      stroke: none, +                      width: 10.0pt), +                 text(body: [ ]), -  rect(fill: rgb(0%,45%,85%,100%), -       height: 10.0pt, -       stroke: (thickness: 0.0pt,-                color: rgb(100%,25%,21%,100%)), -       width: 10.0pt), -  parbreak(), -  line(length: 30.0pt, -       stroke: 0.0pt), -  text(body: [+                 rect(fill: rgb(0%,45%,85%,100%), +                      height: 10.0pt, +                      stroke: (thickness: 0.0pt,+                               color: rgb(100%,25%,21%,100%)), +                      width: 10.0pt), +                 parbreak(), +                 line(length: 30.0pt, +                      stroke: 0.0pt), +                 text(body: [ ]), -  line(length: 30.0pt, -       stroke: (paint: rgb(100%,25%,21%,100%),-                thickness: 0.0pt,-                dash: ("dot", 1.0pt))), -  parbreak(), -  table(children: (text(body: [A]), -                   text(body: [B])), -        columns: 2, -        stroke: none), -  text(body: [+                 line(length: 30.0pt, +                      stroke: (paint: rgb(100%,25%,21%,100%),+                               thickness: 0.0pt,+                               dash: ("dot", 1.0pt))), +                 parbreak(), +                 table(children: (text(body: [A]), +                                  text(body: [B])), +                       columns: 2, +                       stroke: none), +                 text(body: [ ]), -  table(children: (text(body: [A]), -                   text(body: [B])), -        columns: 2, -        stroke: 0.0pt), -  parbreak(), -  path(closed: true, -       fill: rgb(100%,25%,21%,100%), -       stroke: none, -       vertices: (((0%, 0%), -                   (4%, -4%)), -                  ((50%, 50%), (4%, -4%)), -                  ((0%, 50%), (4%, 4%)), -                  ((50%, 0%), (4%, 4%)))), -  parbreak(), -  path(closed: true, -       fill: rgb(100%,25%,21%,100%), -       stroke: 0.0pt, -       vertices: (((0%, 0%), -                   (4%, -4%)), -                  ((50%, 50%), (4%, -4%)), -                  ((0%, 50%), (4%, 4%)), -                  ((50%, 0%), (4%, 4%)))), -  parbreak() }+                 table(children: (text(body: [A]), +                                  text(body: [B])), +                       columns: 2, +                       stroke: 0.0pt), +                 parbreak(), +                 path(closed: true, +                      fill: rgb(100%,25%,21%,100%), +                      stroke: none, +                      vertices: (((0%, 0%), +                                  (4%, -4%)), +                                 ((50%, 50%), (4%, -4%)), +                                 ((0%, 50%), (4%, 4%)), +                                 ((50%, 0%), (4%, 4%)))), +                 parbreak(), +                 path(closed: true, +                      fill: rgb(100%,25%,21%,100%), +                      stroke: 0.0pt, +                      vertices: (((0%, 0%), +                                  (4%, -4%)), +                                 ((50%, 50%), (4%, -4%)), +                                 ((0%, 50%), (4%, 4%)), +                                 ((50%, 0%), (4%, 4%)))), +                 parbreak() })
test/out/visualize/svg-text-00.out view
@@ -64,9 +64,9 @@ , ParBreak ] --- evaluated ----{ text(body: [+document(body: { text(body: [ ]), -  parbreak(), -  figure(body: image(path: "test/assets/files/diagram.svg"), -         caption: text(body: [A textful diagram])), -  parbreak() }+                 parbreak(), +                 figure(body: image(path: "test/assets/files/diagram.svg"), +                        caption: text(body: [A textful diagram])), +                 parbreak() })
test/typ/meta/bibliography-01.typ view
@@ -1,5 +1,5 @@ #set page(width: 200pt) = Details-See also #cite("arrgh", "distress", [p. 22]), @arrgh[p. 4], and @distress[p. 5].+See also #cite(<distress>, supplement: [p. 22]), @arrgh[p. 4], and @distress[p. 5]. #bibliography("/works.bib") 
test/typ/meta/bibliography-04.typ view
@@ -3,5 +3,5 @@ #show bibliography: set heading(numbering: "1.")  = Multiple Bibs-Now we have multiple bibliographies containing #cite("glacier-melt", "keshav2007read")+Now we have multiple bibliographies containing #cite(<glacier-melt>)#cite(<keshav2007read>) #bibliography(("/works.bib", "/works_too.bib"))
+ test/typ/regression/issue17.typ view
@@ -0,0 +1,17 @@+$n(a)^(b)$++$a_1(x)$++$a_f(x)$++$sum_(j = 0)^3$++$sum^3_(j = 0)$++$sum_3^(j = 0)$++$sum^(j=0)_3$++$sum_(j=0)^pi$++$sum^pi_(j=0)$
typst.cabal view
@@ -1,10 +1,10 @@ cabal-version:      2.4 name:               typst-version:            0.3.2.1+version:            0.4 synopsis:           Parsing and evaluating typst syntax. description:        A library for parsing and evaluating typst syntax.                     Typst (<https://typst.app>) is a document layout and-                    formatting language. This library targets typst 0.7+                    formatting language. This library targets typst 0.10                     and currently offers only partial support. license:            BSD-3-Clause license-file:       LICENSE@@ -56,7 +56,7 @@      -- other-extensions:     build-depends:    base >= 4.14 && <= 5,-                      typst-symbols >= 0.1.4 && < 0.1.5,+                      typst-symbols >= 0.1.5 && < 0.1.6,                       mtl,                       vector,                       parsec,