diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -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
diff --git a/app/Main.hs b/app/Main.hs
--- a/app/Main.hs
+++ b/app/Main.hs
@@ -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
diff --git a/src/Typst/Evaluate.hs b/src/Typst/Evaluate.hs
--- a/src/Typst/Evaluate.hs
+++ b/src/Typst/Evaluate.hs
@@ -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
diff --git a/src/Typst/Methods.hs b/src/Typst/Methods.hs
--- a/src/Typst/Methods.hs
+++ b/src/Typst/Methods.hs
@@ -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
diff --git a/src/Typst/Module/Calc.hs b/src/Typst/Module/Calc.hs
--- a/src/Typst/Module/Calc.hs
+++ b/src/Typst/Module/Calc.hs
@@ -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))
     ]
diff --git a/src/Typst/Module/Math.hs b/src/Typst/Module/Math.hs
--- a/src/Typst/Module/Math.hs
+++ b/src/Typst/Module/Math.hs
@@ -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",
diff --git a/src/Typst/Module/Standard.hs b/src/Typst/Module/Standard.hs
--- a/src/Typst/Module/Standard.hs
+++ b/src/Typst/Module/Standard.hs
@@ -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
     )
   ]
 
diff --git a/src/Typst/Parse.hs b/src/Typst/Parse.hs
--- a/src/Typst/Parse.hs
+++ b/src/Typst/Parse.hs
@@ -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
diff --git a/src/Typst/Types.hs b/src/Typst/Types.hs
--- a/src/Typst/Types.hs
+++ b/src/Typst/Types.hs
@@ -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 =
diff --git a/test/Main.hs b/test/Main.hs
--- a/test/Main.hs
+++ b/test/Main.hs
@@ -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
diff --git a/test/out/bugs/args-sink-00.out b/test/out/bugs/args-sink-00.out
--- a/test/out/bugs/args-sink-00.out
+++ b/test/out/bugs/args-sink-00.out
@@ -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() })
diff --git a/test/out/bugs/args-underscore-00.out b/test/out/bugs/args-underscore-00.out
--- a/test/out/bugs/args-underscore-00.out
+++ b/test/out/bugs/args-underscore-00.out
@@ -63,7 +63,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/bugs/columns-1-00.out b/test/out/bugs/columns-1-00.out
--- a/test/out/bugs/columns-1-00.out
+++ b/test/out/bugs/columns-1-00.out
@@ -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() })
diff --git a/test/out/bugs/flow-1-00.out b/test/out/bugs/flow-1-00.out
--- a/test/out/bugs/flow-1-00.out
+++ b/test/out/bugs/flow-1-00.out
@@ -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() })
diff --git a/test/out/bugs/flow-2-00.out b/test/out/bugs/flow-2-00.out
--- a/test/out/bugs/flow-2-00.out
+++ b/test/out/bugs/flow-2-00.out
@@ -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() })
diff --git a/test/out/bugs/flow-3-00.out b/test/out/bugs/flow-3-00.out
--- a/test/out/bugs/flow-3-00.out
+++ b/test/out/bugs/flow-3-00.out
@@ -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() })
diff --git a/test/out/bugs/flow-4-00.out b/test/out/bugs/flow-4-00.out
--- a/test/out/bugs/flow-4-00.out
+++ b/test/out/bugs/flow-4-00.out
@@ -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() })
diff --git a/test/out/bugs/grid-1-00.out b/test/out/bugs/grid-1-00.out
--- a/test/out/bugs/grid-1-00.out
+++ b/test/out/bugs/grid-1-00.out
@@ -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() })
diff --git a/test/out/bugs/grid-1-01.out b/test/out/bugs/grid-1-01.out
--- a/test/out/bugs/grid-1-01.out
+++ b/test/out/bugs/grid-1-01.out
@@ -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() })) })) })
diff --git a/test/out/bugs/grid-2-00.out b/test/out/bugs/grid-2-00.out
--- a/test/out/bugs/grid-2-00.out
+++ b/test/out/bugs/grid-2-00.out
@@ -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() })
diff --git a/test/out/bugs/grid-2-01.out b/test/out/bugs/grid-2-01.out
--- a/test/out/bugs/grid-2-01.out
+++ b/test/out/bugs/grid-2-01.out
@@ -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() })) })
diff --git a/test/out/bugs/grid-3-00.out b/test/out/bugs/grid-3-00.out
--- a/test/out/bugs/grid-3-00.out
+++ b/test/out/bugs/grid-3-00.out
@@ -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() })) })
diff --git a/test/out/bugs/math-realize-00.out b/test/out/bugs/math-realize-00.out
--- a/test/out/bugs/math-realize-00.out
+++ b/test/out/bugs/math-realize-00.out
@@ -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() })
diff --git a/test/out/bugs/math-realize-01.out b/test/out/bugs/math-realize-01.out
--- a/test/out/bugs/math-realize-01.out
+++ b/test/out/bugs/math-realize-01.out
@@ -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() })
diff --git a/test/out/bugs/math-realize-02.out b/test/out/bugs/math-realize-02.out
--- a/test/out/bugs/math-realize-02.out
+++ b/test/out/bugs/math-realize-02.out
@@ -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() })
diff --git a/test/out/bugs/parameter-pattern-00.out b/test/out/bugs/parameter-pattern-00.out
--- a/test/out/bugs/parameter-pattern-00.out
+++ b/test/out/bugs/parameter-pattern-00.out
@@ -80,7 +80,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/bugs/place-base-00.out b/test/out/bugs/place-base-00.out
--- a/test/out/bugs/place-base-00.out
+++ b/test/out/bugs/place-base-00.out
@@ -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() })
diff --git a/test/out/bugs/smartquotes-in-outline-00.out b/test/out/bugs/smartquotes-in-outline-00.out
--- a/test/out/bugs/smartquotes-in-outline-00.out
+++ b/test/out/bugs/smartquotes-in-outline-00.out
@@ -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) })
diff --git a/test/out/bugs/square-base-00.out b/test/out/bugs/square-base-00.out
--- a/test/out/bugs/square-base-00.out
+++ b/test/out/bugs/square-base-00.out
@@ -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() })
diff --git a/test/out/coma-00.out b/test/out/coma-00.out
--- a/test/out/coma-00.out
+++ b/test/out/coma-00.out
@@ -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() })
diff --git a/test/out/compiler/array-00.out b/test/out/compiler/array-00.out
--- a/test/out/compiler/array-00.out
+++ b/test/out/compiler/array-00.out
@@ -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() })
diff --git a/test/out/compiler/array-01.out b/test/out/compiler/array-01.out
--- a/test/out/compiler/array-01.out
+++ b/test/out/compiler/array-01.out
@@ -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() })
diff --git a/test/out/compiler/array-02.out b/test/out/compiler/array-02.out
--- a/test/out/compiler/array-02.out
+++ b/test/out/compiler/array-02.out
@@ -74,7 +74,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/array-03.out b/test/out/compiler/array-03.out
--- a/test/out/compiler/array-03.out
+++ b/test/out/compiler/array-03.out
@@ -83,7 +83,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/array-06.out b/test/out/compiler/array-06.out
--- a/test/out/compiler/array-06.out
+++ b/test/out/compiler/array-06.out
@@ -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() })
diff --git a/test/out/compiler/array-09.out b/test/out/compiler/array-09.out
--- a/test/out/compiler/array-09.out
+++ b/test/out/compiler/array-09.out
@@ -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() })
diff --git a/test/out/compiler/array-10.out b/test/out/compiler/array-10.out
--- a/test/out/compiler/array-10.out
+++ b/test/out/compiler/array-10.out
@@ -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() })
diff --git a/test/out/compiler/array-13.out b/test/out/compiler/array-13.out
--- a/test/out/compiler/array-13.out
+++ b/test/out/compiler/array-13.out
@@ -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() })
diff --git a/test/out/compiler/array-14.out b/test/out/compiler/array-14.out
--- a/test/out/compiler/array-14.out
+++ b/test/out/compiler/array-14.out
@@ -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() })
diff --git a/test/out/compiler/array-16.out b/test/out/compiler/array-16.out
--- a/test/out/compiler/array-16.out
+++ b/test/out/compiler/array-16.out
@@ -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() })
diff --git a/test/out/compiler/array-19.out b/test/out/compiler/array-19.out
--- a/test/out/compiler/array-19.out
+++ b/test/out/compiler/array-19.out
@@ -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() })
diff --git a/test/out/compiler/array-20.out b/test/out/compiler/array-20.out
--- a/test/out/compiler/array-20.out
+++ b/test/out/compiler/array-20.out
@@ -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() })
diff --git a/test/out/compiler/array-21.out b/test/out/compiler/array-21.out
--- a/test/out/compiler/array-21.out
+++ b/test/out/compiler/array-21.out
@@ -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() })
diff --git a/test/out/compiler/array-22.out b/test/out/compiler/array-22.out
--- a/test/out/compiler/array-22.out
+++ b/test/out/compiler/array-22.out
@@ -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() })
diff --git a/test/out/compiler/array-24.out b/test/out/compiler/array-24.out
--- a/test/out/compiler/array-24.out
+++ b/test/out/compiler/array-24.out
@@ -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() })
diff --git a/test/out/compiler/array-26.out b/test/out/compiler/array-26.out
--- a/test/out/compiler/array-26.out
+++ b/test/out/compiler/array-26.out
@@ -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() })
diff --git a/test/out/compiler/array-28.out b/test/out/compiler/array-28.out
--- a/test/out/compiler/array-28.out
+++ b/test/out/compiler/array-28.out
@@ -62,7 +62,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/array-29.out b/test/out/compiler/array-29.out
--- a/test/out/compiler/array-29.out
+++ b/test/out/compiler/array-29.out
@@ -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() })
diff --git a/test/out/compiler/array-32.out b/test/out/compiler/array-32.out
--- a/test/out/compiler/array-32.out
+++ b/test/out/compiler/array-32.out
@@ -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() })
diff --git a/test/out/compiler/array-33.out b/test/out/compiler/array-33.out
--- a/test/out/compiler/array-33.out
+++ b/test/out/compiler/array-33.out
@@ -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() })
diff --git a/test/out/compiler/array-34.out b/test/out/compiler/array-34.out
--- a/test/out/compiler/array-34.out
+++ b/test/out/compiler/array-34.out
@@ -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() })
diff --git a/test/out/compiler/bench-00.out b/test/out/compiler/bench-00.out
--- a/test/out/compiler/bench-00.out
+++ b/test/out/compiler/bench-00.out
@@ -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() })
diff --git a/test/out/compiler/block-00.out b/test/out/compiler/block-00.out
--- a/test/out/compiler/block-00.out
+++ b/test/out/compiler/block-00.out
@@ -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() })
diff --git a/test/out/compiler/block-01.out b/test/out/compiler/block-01.out
--- a/test/out/compiler/block-01.out
+++ b/test/out/compiler/block-01.out
@@ -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() })
diff --git a/test/out/compiler/block-06.out b/test/out/compiler/block-06.out
--- a/test/out/compiler/block-06.out
+++ b/test/out/compiler/block-06.out
@@ -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() })
diff --git a/test/out/compiler/break-continue-00.out b/test/out/compiler/break-continue-00.out
--- a/test/out/compiler/break-continue-00.out
+++ b/test/out/compiler/break-continue-00.out
@@ -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() })
diff --git a/test/out/compiler/break-continue-01.out b/test/out/compiler/break-continue-01.out
--- a/test/out/compiler/break-continue-01.out
+++ b/test/out/compiler/break-continue-01.out
@@ -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() })
diff --git a/test/out/compiler/break-continue-02.out b/test/out/compiler/break-continue-02.out
--- a/test/out/compiler/break-continue-02.out
+++ b/test/out/compiler/break-continue-02.out
@@ -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() })
diff --git a/test/out/compiler/break-continue-03.out b/test/out/compiler/break-continue-03.out
--- a/test/out/compiler/break-continue-03.out
+++ b/test/out/compiler/break-continue-03.out
@@ -80,10 +80,10 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  parbreak(), 
-  text(body: [✅]), 
-  parbreak() }
+                 parbreak(), 
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/break-continue-05.out b/test/out/compiler/break-continue-05.out
--- a/test/out/compiler/break-continue-05.out
+++ b/test/out/compiler/break-continue-05.out
@@ -77,10 +77,10 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  parbreak(), 
-  text(body: [✅]), 
-  parbreak() }
+                 parbreak(), 
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/break-continue-08.out b/test/out/compiler/break-continue-08.out
--- a/test/out/compiler/break-continue-08.out
+++ b/test/out/compiler/break-continue-08.out
@@ -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() })
diff --git a/test/out/compiler/break-continue-09.out b/test/out/compiler/break-continue-09.out
--- a/test/out/compiler/break-continue-09.out
+++ b/test/out/compiler/break-continue-09.out
@@ -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() })
diff --git a/test/out/compiler/break-continue-10.out b/test/out/compiler/break-continue-10.out
--- a/test/out/compiler/break-continue-10.out
+++ b/test/out/compiler/break-continue-10.out
@@ -60,7 +60,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [Hello]), 
-  parbreak() }
+                 text(body: [Hello]), 
+                 parbreak() })
diff --git a/test/out/compiler/break-continue-11.out b/test/out/compiler/break-continue-11.out
--- a/test/out/compiler/break-continue-11.out
+++ b/test/out/compiler/break-continue-11.out
@@ -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() })
diff --git a/test/out/compiler/call-00.out b/test/out/compiler/call-00.out
--- a/test/out/compiler/call-00.out
+++ b/test/out/compiler/call-00.out
@@ -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() })
diff --git a/test/out/compiler/call-01.out b/test/out/compiler/call-01.out
--- a/test/out/compiler/call-01.out
+++ b/test/out/compiler/call-01.out
@@ -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() })
diff --git a/test/out/compiler/closure-00.out b/test/out/compiler/closure-00.out
--- a/test/out/compiler/closure-00.out
+++ b/test/out/compiler/closure-00.out
@@ -56,9 +56,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  parbreak(), 
-  parbreak() }
+                 parbreak(), 
+                 parbreak() })
diff --git a/test/out/compiler/closure-01.out b/test/out/compiler/closure-01.out
--- a/test/out/compiler/closure-01.out
+++ b/test/out/compiler/closure-01.out
@@ -62,7 +62,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/closure-02.out b/test/out/compiler/closure-02.out
--- a/test/out/compiler/closure-02.out
+++ b/test/out/compiler/closure-02.out
@@ -85,7 +85,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/closure-03.out b/test/out/compiler/closure-03.out
--- a/test/out/compiler/closure-03.out
+++ b/test/out/compiler/closure-03.out
@@ -85,8 +85,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/closure-04.out b/test/out/compiler/closure-04.out
--- a/test/out/compiler/closure-04.out
+++ b/test/out/compiler/closure-04.out
@@ -65,7 +65,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/closure-05.out b/test/out/compiler/closure-05.out
--- a/test/out/compiler/closure-05.out
+++ b/test/out/compiler/closure-05.out
@@ -65,7 +65,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/closure-06.out b/test/out/compiler/closure-06.out
--- a/test/out/compiler/closure-06.out
+++ b/test/out/compiler/closure-06.out
@@ -78,7 +78,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/closure-07.out b/test/out/compiler/closure-07.out
--- a/test/out/compiler/closure-07.out
+++ b/test/out/compiler/closure-07.out
@@ -63,7 +63,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/closure-08.out b/test/out/compiler/closure-08.out
--- a/test/out/compiler/closure-08.out
+++ b/test/out/compiler/closure-08.out
@@ -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() })
diff --git a/test/out/compiler/color-00.out b/test/out/compiler/color-00.out
--- a/test/out/compiler/color-00.out
+++ b/test/out/compiler/color-00.out
@@ -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() })
diff --git a/test/out/compiler/color-01.out b/test/out/compiler/color-01.out
--- a/test/out/compiler/color-01.out
+++ b/test/out/compiler/color-01.out
@@ -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() })
diff --git a/test/out/compiler/comment-00.out b/test/out/compiler/comment-00.out
--- a/test/out/compiler/comment-00.out
+++ b/test/out/compiler/comment-00.out
@@ -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() })
diff --git a/test/out/compiler/construct-00.out b/test/out/compiler/construct-00.out
--- a/test/out/compiler/construct-00.out
+++ b/test/out/compiler/construct-00.out
@@ -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() })
diff --git a/test/out/compiler/construct-01.out b/test/out/compiler/construct-01.out
--- a/test/out/compiler/construct-01.out
+++ b/test/out/compiler/construct-01.out
@@ -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() })
diff --git a/test/out/compiler/construct-02.out b/test/out/compiler/construct-02.out
--- a/test/out/compiler/construct-02.out
+++ b/test/out/compiler/construct-02.out
@@ -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() })
diff --git a/test/out/compiler/construct-03.out b/test/out/compiler/construct-03.out
--- a/test/out/compiler/construct-03.out
+++ b/test/out/compiler/construct-03.out
@@ -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() })
diff --git a/test/out/compiler/construct-04.out b/test/out/compiler/construct-04.out
--- a/test/out/compiler/construct-04.out
+++ b/test/out/compiler/construct-04.out
@@ -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() })
diff --git a/test/out/compiler/dict-00.out b/test/out/compiler/dict-00.out
--- a/test/out/compiler/dict-00.out
+++ b/test/out/compiler/dict-00.out
@@ -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() })
diff --git a/test/out/compiler/dict-01.out b/test/out/compiler/dict-01.out
--- a/test/out/compiler/dict-01.out
+++ b/test/out/compiler/dict-01.out
@@ -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() })
diff --git a/test/out/compiler/dict-03.out b/test/out/compiler/dict-03.out
--- a/test/out/compiler/dict-03.out
+++ b/test/out/compiler/dict-03.out
@@ -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() })
diff --git a/test/out/compiler/dict-05.out b/test/out/compiler/dict-05.out
--- a/test/out/compiler/dict-05.out
+++ b/test/out/compiler/dict-05.out
@@ -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() })
diff --git a/test/out/compiler/field-00.out b/test/out/compiler/field-00.out
--- a/test/out/compiler/field-00.out
+++ b/test/out/compiler/field-00.out
@@ -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() })
diff --git a/test/out/compiler/field-01.out b/test/out/compiler/field-01.out
--- a/test/out/compiler/field-01.out
+++ b/test/out/compiler/field-01.out
@@ -69,7 +69,7 @@
 , BulletListItem [ Text "C" , ParBreak ]
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak(), 
-  text(body: [✅]) }
+                 parbreak(), 
+                 text(body: [✅]) })
diff --git a/test/out/compiler/field-02.out b/test/out/compiler/field-02.out
--- a/test/out/compiler/field-02.out
+++ b/test/out/compiler/field-02.out
@@ -60,10 +60,10 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/compiler/for-00.out b/test/out/compiler/for-00.out
--- a/test/out/compiler/for-00.out
+++ b/test/out/compiler/for-00.out
@@ -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() })
diff --git a/test/out/compiler/for-01.out b/test/out/compiler/for-01.out
--- a/test/out/compiler/for-01.out
+++ b/test/out/compiler/for-01.out
@@ -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() })
diff --git a/test/out/compiler/highlight-00.out b/test/out/compiler/highlight-00.out
--- a/test/out/compiler/highlight-00.out
+++ b/test/out/compiler/highlight-00.out
@@ -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() })
diff --git a/test/out/compiler/if-00.out b/test/out/compiler/if-00.out
--- a/test/out/compiler/if-00.out
+++ b/test/out/compiler/if-00.out
@@ -73,10 +73,10 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 One.]), 
-  parbreak(), 
-  parbreak(), 
-  parbreak() }
+                 parbreak(), 
+                 parbreak(), 
+                 parbreak() })
diff --git a/test/out/compiler/if-01.out b/test/out/compiler/if-01.out
--- a/test/out/compiler/if-01.out
+++ b/test/out/compiler/if-01.out
@@ -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() })
diff --git a/test/out/compiler/if-02.out b/test/out/compiler/if-02.out
--- a/test/out/compiler/if-02.out
+++ b/test/out/compiler/if-02.out
@@ -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() })
diff --git a/test/out/compiler/if-03.out b/test/out/compiler/if-03.out
--- a/test/out/compiler/if-03.out
+++ b/test/out/compiler/if-03.out
@@ -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() })
diff --git a/test/out/compiler/import-00.out b/test/out/compiler/import-00.out
--- a/test/out/compiler/import-00.out
+++ b/test/out/compiler/import-00.out
@@ -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() })
diff --git a/test/out/compiler/import-01.out b/test/out/compiler/import-01.out
--- a/test/out/compiler/import-01.out
+++ b/test/out/compiler/import-01.out
@@ -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() })
diff --git a/test/out/compiler/import-02.out b/test/out/compiler/import-02.out
--- a/test/out/compiler/import-02.out
+++ b/test/out/compiler/import-02.out
@@ -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() })
diff --git a/test/out/compiler/import-03.out b/test/out/compiler/import-03.out
--- a/test/out/compiler/import-03.out
+++ b/test/out/compiler/import-03.out
@@ -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() })
diff --git a/test/out/compiler/import-05.out b/test/out/compiler/import-05.out
--- a/test/out/compiler/import-05.out
+++ b/test/out/compiler/import-05.out
@@ -55,7 +55,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak(), 
-  parbreak() }
+                 parbreak(), 
+                 parbreak() })
diff --git a/test/out/compiler/import-06.out b/test/out/compiler/import-06.out
--- a/test/out/compiler/import-06.out
+++ b/test/out/compiler/import-06.out
@@ -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() })
diff --git a/test/out/compiler/include-00.out b/test/out/compiler/include-00.out
--- a/test/out/compiler/include-00.out
+++ b/test/out/compiler/include-00.out
@@ -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() })
diff --git a/test/out/compiler/label-00.out b/test/out/compiler/label-00.out
--- a/test/out/compiler/label-00.out
+++ b/test/out/compiler/label-00.out
@@ -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() })
diff --git a/test/out/compiler/label-01.out b/test/out/compiler/label-01.out
--- a/test/out/compiler/label-01.out
+++ b/test/out/compiler/label-01.out
@@ -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() })
diff --git a/test/out/compiler/label-02.out b/test/out/compiler/label-02.out
--- a/test/out/compiler/label-02.out
+++ b/test/out/compiler/label-02.out
@@ -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() })
diff --git a/test/out/compiler/label-03.out b/test/out/compiler/label-03.out
--- a/test/out/compiler/label-03.out
+++ b/test/out/compiler/label-03.out
@@ -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() })
diff --git a/test/out/compiler/label-04.out b/test/out/compiler/label-04.out
--- a/test/out/compiler/label-04.out
+++ b/test/out/compiler/label-04.out
@@ -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() })
diff --git a/test/out/compiler/label-05.out b/test/out/compiler/label-05.out
--- a/test/out/compiler/label-05.out
+++ b/test/out/compiler/label-05.out
@@ -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() })
diff --git a/test/out/compiler/label-06.out b/test/out/compiler/label-06.out
--- a/test/out/compiler/label-06.out
+++ b/test/out/compiler/label-06.out
@@ -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() })
diff --git a/test/out/compiler/let-00.out b/test/out/compiler/let-00.out
--- a/test/out/compiler/let-00.out
+++ b/test/out/compiler/let-00.out
@@ -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() })
diff --git a/test/out/compiler/let-01.out b/test/out/compiler/let-01.out
--- a/test/out/compiler/let-01.out
+++ b/test/out/compiler/let-01.out
@@ -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() })
diff --git a/test/out/compiler/let-02.out b/test/out/compiler/let-02.out
--- a/test/out/compiler/let-02.out
+++ b/test/out/compiler/let-02.out
@@ -50,6 +50,6 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/compiler/let-03.out b/test/out/compiler/let-03.out
--- a/test/out/compiler/let-03.out
+++ b/test/out/compiler/let-03.out
@@ -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() })
diff --git a/test/out/compiler/let-04.out b/test/out/compiler/let-04.out
--- a/test/out/compiler/let-04.out
+++ b/test/out/compiler/let-04.out
@@ -58,9 +58,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/let-05.out b/test/out/compiler/let-05.out
--- a/test/out/compiler/let-05.out
+++ b/test/out/compiler/let-05.out
@@ -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() })
diff --git a/test/out/compiler/let-06.out b/test/out/compiler/let-06.out
--- a/test/out/compiler/let-06.out
+++ b/test/out/compiler/let-06.out
@@ -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() })
diff --git a/test/out/compiler/let-07.out b/test/out/compiler/let-07.out
--- a/test/out/compiler/let-07.out
+++ b/test/out/compiler/let-07.out
@@ -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() })
diff --git a/test/out/compiler/let-08.out b/test/out/compiler/let-08.out
--- a/test/out/compiler/let-08.out
+++ b/test/out/compiler/let-08.out
@@ -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() })
diff --git a/test/out/compiler/let-09.out b/test/out/compiler/let-09.out
--- a/test/out/compiler/let-09.out
+++ b/test/out/compiler/let-09.out
@@ -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() })
diff --git a/test/out/compiler/let-10.out b/test/out/compiler/let-10.out
--- a/test/out/compiler/let-10.out
+++ b/test/out/compiler/let-10.out
@@ -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() })
diff --git a/test/out/compiler/let-11.out b/test/out/compiler/let-11.out
--- a/test/out/compiler/let-11.out
+++ b/test/out/compiler/let-11.out
@@ -56,9 +56,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/let-16.out b/test/out/compiler/let-16.out
--- a/test/out/compiler/let-16.out
+++ b/test/out/compiler/let-16.out
@@ -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() })
diff --git a/test/out/compiler/let-17.out b/test/out/compiler/let-17.out
--- a/test/out/compiler/let-17.out
+++ b/test/out/compiler/let-17.out
@@ -70,9 +70,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/let-18.out b/test/out/compiler/let-18.out
--- a/test/out/compiler/let-18.out
+++ b/test/out/compiler/let-18.out
@@ -67,9 +67,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/let-19.out b/test/out/compiler/let-19.out
--- a/test/out/compiler/let-19.out
+++ b/test/out/compiler/let-19.out
@@ -60,9 +60,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/let-20.out b/test/out/compiler/let-20.out
--- a/test/out/compiler/let-20.out
+++ b/test/out/compiler/let-20.out
@@ -56,9 +56,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/let-21.out b/test/out/compiler/let-21.out
--- a/test/out/compiler/let-21.out
+++ b/test/out/compiler/let-21.out
@@ -63,9 +63,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/methods-00.out b/test/out/compiler/methods-00.out
--- a/test/out/compiler/methods-00.out
+++ b/test/out/compiler/methods-00.out
@@ -57,7 +57,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/methods-01.out b/test/out/compiler/methods-01.out
--- a/test/out/compiler/methods-01.out
+++ b/test/out/compiler/methods-01.out
@@ -92,7 +92,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/methods-02.out b/test/out/compiler/methods-02.out
--- a/test/out/compiler/methods-02.out
+++ b/test/out/compiler/methods-02.out
@@ -95,7 +95,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/module.out b/test/out/compiler/module.out
--- a/test/out/compiler/module.out
+++ b/test/out/compiler/module.out
@@ -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() })
diff --git a/test/out/compiler/modules/chap1.out b/test/out/compiler/modules/chap1.out
--- a/test/out/compiler/modules/chap1.out
+++ b/test/out/compiler/modules/chap1.out
@@ -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() })
diff --git a/test/out/compiler/modules/chap2.out b/test/out/compiler/modules/chap2.out
--- a/test/out/compiler/modules/chap2.out
+++ b/test/out/compiler/modules/chap2.out
@@ -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() })
diff --git a/test/out/compiler/ops-00.out b/test/out/compiler/ops-00.out
--- a/test/out/compiler/ops-00.out
+++ b/test/out/compiler/ops-00.out
@@ -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() })
diff --git a/test/out/compiler/ops-01.out b/test/out/compiler/ops-01.out
--- a/test/out/compiler/ops-01.out
+++ b/test/out/compiler/ops-01.out
@@ -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() })
diff --git a/test/out/compiler/ops-03.out b/test/out/compiler/ops-03.out
--- a/test/out/compiler/ops-03.out
+++ b/test/out/compiler/ops-03.out
@@ -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() })
diff --git a/test/out/compiler/ops-04.out b/test/out/compiler/ops-04.out
--- a/test/out/compiler/ops-04.out
+++ b/test/out/compiler/ops-04.out
@@ -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() })
diff --git a/test/out/compiler/ops-07.out b/test/out/compiler/ops-07.out
--- a/test/out/compiler/ops-07.out
+++ b/test/out/compiler/ops-07.out
@@ -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() })
diff --git a/test/out/compiler/ops-08.out b/test/out/compiler/ops-08.out
--- a/test/out/compiler/ops-08.out
+++ b/test/out/compiler/ops-08.out
@@ -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() })
diff --git a/test/out/compiler/ops-09.out b/test/out/compiler/ops-09.out
--- a/test/out/compiler/ops-09.out
+++ b/test/out/compiler/ops-09.out
@@ -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() })
diff --git a/test/out/compiler/ops-10.out b/test/out/compiler/ops-10.out
--- a/test/out/compiler/ops-10.out
+++ b/test/out/compiler/ops-10.out
@@ -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() })
diff --git a/test/out/compiler/ops-13.out b/test/out/compiler/ops-13.out
--- a/test/out/compiler/ops-13.out
+++ b/test/out/compiler/ops-13.out
@@ -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() })
diff --git a/test/out/compiler/ops-15.out b/test/out/compiler/ops-15.out
--- a/test/out/compiler/ops-15.out
+++ b/test/out/compiler/ops-15.out
@@ -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() })
diff --git a/test/out/compiler/ops-assoc-00.out b/test/out/compiler/ops-assoc-00.out
--- a/test/out/compiler/ops-assoc-00.out
+++ b/test/out/compiler/ops-assoc-00.out
@@ -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() })
diff --git a/test/out/compiler/ops-assoc-01.out b/test/out/compiler/ops-assoc-01.out
--- a/test/out/compiler/ops-assoc-01.out
+++ b/test/out/compiler/ops-assoc-01.out
@@ -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() })
diff --git a/test/out/compiler/ops-invalid-29.out b/test/out/compiler/ops-invalid-29.out
--- a/test/out/compiler/ops-invalid-29.out
+++ b/test/out/compiler/ops-invalid-29.out
@@ -55,8 +55,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/compiler/ops-prec-00.out b/test/out/compiler/ops-prec-00.out
--- a/test/out/compiler/ops-prec-00.out
+++ b/test/out/compiler/ops-prec-00.out
@@ -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() })
diff --git a/test/out/compiler/ops-prec-03.out b/test/out/compiler/ops-prec-03.out
--- a/test/out/compiler/ops-prec-03.out
+++ b/test/out/compiler/ops-prec-03.out
@@ -59,7 +59,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/recursion-00.out b/test/out/compiler/recursion-00.out
--- a/test/out/compiler/recursion-00.out
+++ b/test/out/compiler/recursion-00.out
@@ -80,8 +80,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak(), 
-  text(body: [✅]), 
-  parbreak() }
+                 parbreak(), 
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/recursion-02.out b/test/out/compiler/recursion-02.out
--- a/test/out/compiler/recursion-02.out
+++ b/test/out/compiler/recursion-02.out
@@ -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() })
diff --git a/test/out/compiler/recursion-03.out b/test/out/compiler/recursion-03.out
--- a/test/out/compiler/recursion-03.out
+++ b/test/out/compiler/recursion-03.out
@@ -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() })
diff --git a/test/out/compiler/recursion-05.out b/test/out/compiler/recursion-05.out
--- a/test/out/compiler/recursion-05.out
+++ b/test/out/compiler/recursion-05.out
@@ -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() })
diff --git a/test/out/compiler/repr-00.out b/test/out/compiler/repr-00.out
--- a/test/out/compiler/repr-00.out
+++ b/test/out/compiler/repr-00.out
@@ -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() })
diff --git a/test/out/compiler/repr-01.out b/test/out/compiler/repr-01.out
--- a/test/out/compiler/repr-01.out
+++ b/test/out/compiler/repr-01.out
@@ -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() })
diff --git a/test/out/compiler/repr-02.out b/test/out/compiler/repr-02.out
--- a/test/out/compiler/repr-02.out
+++ b/test/out/compiler/repr-02.out
@@ -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() })
diff --git a/test/out/compiler/return-00.out b/test/out/compiler/return-00.out
--- a/test/out/compiler/return-00.out
+++ b/test/out/compiler/return-00.out
@@ -63,8 +63,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak(), 
-  text(body: [✅]), 
-  parbreak() }
+                 parbreak(), 
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/return-01.out b/test/out/compiler/return-01.out
--- a/test/out/compiler/return-01.out
+++ b/test/out/compiler/return-01.out
@@ -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() })
diff --git a/test/out/compiler/return-04.out b/test/out/compiler/return-04.out
--- a/test/out/compiler/return-04.out
+++ b/test/out/compiler/return-04.out
@@ -93,9 +93,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak(), 
-  parbreak(), 
-  text(body: [✅]), 
-  parbreak() }
+                 parbreak(), 
+                 parbreak(), 
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/return-05.out b/test/out/compiler/return-05.out
--- a/test/out/compiler/return-05.out
+++ b/test/out/compiler/return-05.out
@@ -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() })
diff --git a/test/out/compiler/set-00.out b/test/out/compiler/set-00.out
--- a/test/out/compiler/set-00.out
+++ b/test/out/compiler/set-00.out
@@ -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() })
diff --git a/test/out/compiler/set-01.out b/test/out/compiler/set-01.out
--- a/test/out/compiler/set-01.out
+++ b/test/out/compiler/set-01.out
@@ -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) })
diff --git a/test/out/compiler/set-02.out b/test/out/compiler/set-02.out
--- a/test/out/compiler/set-02.out
+++ b/test/out/compiler/set-02.out
@@ -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() })
diff --git a/test/out/compiler/set-03.out b/test/out/compiler/set-03.out
--- a/test/out/compiler/set-03.out
+++ b/test/out/compiler/set-03.out
@@ -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() })
diff --git a/test/out/compiler/set-04.out b/test/out/compiler/set-04.out
--- a/test/out/compiler/set-04.out
+++ b/test/out/compiler/set-04.out
@@ -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: ) })
diff --git a/test/out/compiler/set-05.out b/test/out/compiler/set-05.out
--- a/test/out/compiler/set-05.out
+++ b/test/out/compiler/set-05.out
@@ -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() })
diff --git a/test/out/compiler/shorthand-00.out b/test/out/compiler/shorthand-00.out
--- a/test/out/compiler/shorthand-00.out
+++ b/test/out/compiler/shorthand-00.out
@@ -54,6 +54,6 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 The non-breaking space does work.]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/compiler/shorthand-01.out b/test/out/compiler/shorthand-01.out
--- a/test/out/compiler/shorthand-01.out
+++ b/test/out/compiler/shorthand-01.out
@@ -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() })
diff --git a/test/out/compiler/shorthand-02.out b/test/out/compiler/shorthand-02.out
--- a/test/out/compiler/shorthand-02.out
+++ b/test/out/compiler/shorthand-02.out
@@ -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() })) })
diff --git a/test/out/compiler/shorthand-03.out b/test/out/compiler/shorthand-03.out
--- a/test/out/compiler/shorthand-03.out
+++ b/test/out/compiler/shorthand-03.out
@@ -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() })
diff --git a/test/out/compiler/show-bare-00.out b/test/out/compiler/show-bare-00.out
--- a/test/out/compiler/show-bare-00.out
+++ b/test/out/compiler/show-bare-00.out
@@ -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) })
diff --git a/test/out/compiler/show-bare-01.out b/test/out/compiler/show-bare-01.out
--- a/test/out/compiler/show-bare-01.out
+++ b/test/out/compiler/show-bare-01.out
@@ -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() })
diff --git a/test/out/compiler/show-bare-02.out b/test/out/compiler/show-bare-02.out
--- a/test/out/compiler/show-bare-02.out
+++ b/test/out/compiler/show-bare-02.out
@@ -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%)) })
diff --git a/test/out/compiler/show-bare-03.out b/test/out/compiler/show-bare-03.out
--- a/test/out/compiler/show-bare-03.out
+++ b/test/out/compiler/show-bare-03.out
@@ -48,6 +48,6 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [Shown]) }
+                 text(body: [Shown]) })
diff --git a/test/out/compiler/show-node-01.out b/test/out/compiler/show-node-01.out
--- a/test/out/compiler/show-node-01.out
+++ b/test/out/compiler/show-node-01.out
@@ -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() })
diff --git a/test/out/compiler/show-node-02.out b/test/out/compiler/show-node-02.out
--- a/test/out/compiler/show-node-02.out
+++ b/test/out/compiler/show-node-02.out
@@ -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() })
diff --git a/test/out/compiler/show-node-03.out b/test/out/compiler/show-node-03.out
--- a/test/out/compiler/show-node-03.out
+++ b/test/out/compiler/show-node-03.out
@@ -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() })
diff --git a/test/out/compiler/show-node-04.out b/test/out/compiler/show-node-04.out
--- a/test/out/compiler/show-node-04.out
+++ b/test/out/compiler/show-node-04.out
@@ -61,7 +61,7 @@
 , Heading 1 [ Text "Heading" ]
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak(), 
-  text(body: [Heading]) }
+                 parbreak(), 
+                 text(body: [Heading]) })
diff --git a/test/out/compiler/show-node-05.out b/test/out/compiler/show-node-05.out
--- a/test/out/compiler/show-node-05.out
+++ b/test/out/compiler/show-node-05.out
@@ -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 ] }) })
diff --git a/test/out/compiler/show-node-06.out b/test/out/compiler/show-node-06.out
--- a/test/out/compiler/show-node-06.out
+++ b/test/out/compiler/show-node-06.out
@@ -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]) })
diff --git a/test/out/compiler/show-node-08.out b/test/out/compiler/show-node-08.out
--- a/test/out/compiler/show-node-08.out
+++ b/test/out/compiler/show-node-08.out
@@ -48,8 +48,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 Hey]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/compiler/show-recursive-00.out b/test/out/compiler/show-recursive-00.out
--- a/test/out/compiler/show-recursive-00.out
+++ b/test/out/compiler/show-recursive-00.out
@@ -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) })
diff --git a/test/out/compiler/show-recursive-01.out b/test/out/compiler/show-recursive-01.out
--- a/test/out/compiler/show-recursive-01.out
+++ b/test/out/compiler/show-recursive-01.out
@@ -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%) })
diff --git a/test/out/compiler/show-recursive-02.out b/test/out/compiler/show-recursive-02.out
--- a/test/out/compiler/show-recursive-02.out
+++ b/test/out/compiler/show-recursive-02.out
@@ -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() })) })
diff --git a/test/out/compiler/show-recursive-03.out b/test/out/compiler/show-recursive-03.out
--- a/test/out/compiler/show-recursive-03.out
+++ b/test/out/compiler/show-recursive-03.out
@@ -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() }))) })
diff --git a/test/out/compiler/show-selector-00.out b/test/out/compiler/show-selector-00.out
--- a/test/out/compiler/show-selector-00.out
+++ b/test/out/compiler/show-selector-00.out
@@ -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() })
diff --git a/test/out/compiler/show-selector-01.out b/test/out/compiler/show-selector-01.out
--- a/test/out/compiler/show-selector-01.out
+++ b/test/out/compiler/show-selector-01.out
@@ -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) })
diff --git a/test/out/compiler/show-text-00.out b/test/out/compiler/show-text-00.out
--- a/test/out/compiler/show-text-00.out
+++ b/test/out/compiler/show-text-00.out
@@ -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() })
diff --git a/test/out/compiler/show-text-01.out b/test/out/compiler/show-text-01.out
--- a/test/out/compiler/show-text-01.out
+++ b/test/out/compiler/show-text-01.out
@@ -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() })
diff --git a/test/out/compiler/show-text-02.out b/test/out/compiler/show-text-02.out
--- a/test/out/compiler/show-text-02.out
+++ b/test/out/compiler/show-text-02.out
@@ -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() })
diff --git a/test/out/compiler/show-text-03.out b/test/out/compiler/show-text-03.out
--- a/test/out/compiler/show-text-03.out
+++ b/test/out/compiler/show-text-03.out
@@ -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() })
diff --git a/test/out/compiler/show-text-04.out b/test/out/compiler/show-text-04.out
--- a/test/out/compiler/show-text-04.out
+++ b/test/out/compiler/show-text-04.out
@@ -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() })
diff --git a/test/out/compiler/show-text-05.out b/test/out/compiler/show-text-05.out
--- a/test/out/compiler/show-text-05.out
+++ b/test/out/compiler/show-text-05.out
@@ -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() })
diff --git a/test/out/compiler/show-text-06.out b/test/out/compiler/show-text-06.out
--- a/test/out/compiler/show-text-06.out
+++ b/test/out/compiler/show-text-06.out
@@ -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() })
diff --git a/test/out/compiler/show-text-07.out b/test/out/compiler/show-text-07.out
--- a/test/out/compiler/show-text-07.out
+++ b/test/out/compiler/show-text-07.out
@@ -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() })
diff --git a/test/out/compiler/show-text-08.out b/test/out/compiler/show-text-08.out
--- a/test/out/compiler/show-text-08.out
+++ b/test/out/compiler/show-text-08.out
@@ -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() })
diff --git a/test/out/compiler/spread-00.out b/test/out/compiler/spread-00.out
--- a/test/out/compiler/spread-00.out
+++ b/test/out/compiler/spread-00.out
@@ -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() })
diff --git a/test/out/compiler/spread-01.out b/test/out/compiler/spread-01.out
--- a/test/out/compiler/spread-01.out
+++ b/test/out/compiler/spread-01.out
@@ -76,7 +76,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/spread-02.out b/test/out/compiler/spread-02.out
--- a/test/out/compiler/spread-02.out
+++ b/test/out/compiler/spread-02.out
@@ -77,8 +77,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/spread-03.out b/test/out/compiler/spread-03.out
--- a/test/out/compiler/spread-03.out
+++ b/test/out/compiler/spread-03.out
@@ -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() })
diff --git a/test/out/compiler/spread-04.out b/test/out/compiler/spread-04.out
--- a/test/out/compiler/spread-04.out
+++ b/test/out/compiler/spread-04.out
@@ -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() })
diff --git a/test/out/compiler/spread-05.out b/test/out/compiler/spread-05.out
--- a/test/out/compiler/spread-05.out
+++ b/test/out/compiler/spread-05.out
@@ -65,9 +65,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/spread-12.out b/test/out/compiler/spread-12.out
--- a/test/out/compiler/spread-12.out
+++ b/test/out/compiler/spread-12.out
@@ -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() })
diff --git a/test/out/compiler/spread-13.out b/test/out/compiler/spread-13.out
--- a/test/out/compiler/spread-13.out
+++ b/test/out/compiler/spread-13.out
@@ -89,8 +89,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/string-00.out b/test/out/compiler/string-00.out
--- a/test/out/compiler/string-00.out
+++ b/test/out/compiler/string-00.out
@@ -55,7 +55,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compiler/string-01.out b/test/out/compiler/string-01.out
--- a/test/out/compiler/string-01.out
+++ b/test/out/compiler/string-01.out
@@ -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() })
diff --git a/test/out/compiler/string-04.out b/test/out/compiler/string-04.out
--- a/test/out/compiler/string-04.out
+++ b/test/out/compiler/string-04.out
@@ -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() })
diff --git a/test/out/compiler/string-07.out b/test/out/compiler/string-07.out
--- a/test/out/compiler/string-07.out
+++ b/test/out/compiler/string-07.out
@@ -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() })
diff --git a/test/out/compiler/string-09.out b/test/out/compiler/string-09.out
--- a/test/out/compiler/string-09.out
+++ b/test/out/compiler/string-09.out
@@ -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() })
diff --git a/test/out/compiler/string-10.out b/test/out/compiler/string-10.out
--- a/test/out/compiler/string-10.out
+++ b/test/out/compiler/string-10.out
@@ -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() })
diff --git a/test/out/compiler/string-11.out b/test/out/compiler/string-11.out
--- a/test/out/compiler/string-11.out
+++ b/test/out/compiler/string-11.out
@@ -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() })
diff --git a/test/out/compiler/string-12.out b/test/out/compiler/string-12.out
--- a/test/out/compiler/string-12.out
+++ b/test/out/compiler/string-12.out
@@ -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() })
diff --git a/test/out/compiler/string-13.out b/test/out/compiler/string-13.out
--- a/test/out/compiler/string-13.out
+++ b/test/out/compiler/string-13.out
@@ -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() })
diff --git a/test/out/compiler/string-14.out b/test/out/compiler/string-14.out
--- a/test/out/compiler/string-14.out
+++ b/test/out/compiler/string-14.out
@@ -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() })
diff --git a/test/out/compiler/string-15.out b/test/out/compiler/string-15.out
--- a/test/out/compiler/string-15.out
+++ b/test/out/compiler/string-15.out
@@ -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() })
diff --git a/test/out/compiler/string-18.out b/test/out/compiler/string-18.out
--- a/test/out/compiler/string-18.out
+++ b/test/out/compiler/string-18.out
@@ -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() })
diff --git a/test/out/compiler/string-20.out b/test/out/compiler/string-20.out
--- a/test/out/compiler/string-20.out
+++ b/test/out/compiler/string-20.out
@@ -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() })
diff --git a/test/out/compiler/while-00.out b/test/out/compiler/while-00.out
--- a/test/out/compiler/while-00.out
+++ b/test/out/compiler/while-00.out
@@ -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() })
diff --git a/test/out/compiler/while-01.out b/test/out/compiler/while-01.out
--- a/test/out/compiler/while-01.out
+++ b/test/out/compiler/while-01.out
@@ -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() })
diff --git a/test/out/compute/calc-00.out b/test/out/compute/calc-00.out
--- a/test/out/compute/calc-00.out
+++ b/test/out/compute/calc-00.out
@@ -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() })
diff --git a/test/out/compute/calc-01.out b/test/out/compute/calc-01.out
--- a/test/out/compute/calc-01.out
+++ b/test/out/compute/calc-01.out
@@ -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() })
diff --git a/test/out/compute/calc-06.out b/test/out/compute/calc-06.out
--- a/test/out/compute/calc-06.out
+++ b/test/out/compute/calc-06.out
@@ -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() })
diff --git a/test/out/compute/calc-08.out b/test/out/compute/calc-08.out
--- a/test/out/compute/calc-08.out
+++ b/test/out/compute/calc-08.out
@@ -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() })
diff --git a/test/out/compute/calc-09.out b/test/out/compute/calc-09.out
--- a/test/out/compute/calc-09.out
+++ b/test/out/compute/calc-09.out
@@ -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() })
diff --git a/test/out/compute/calc-12.out b/test/out/compute/calc-12.out
--- a/test/out/compute/calc-12.out
+++ b/test/out/compute/calc-12.out
@@ -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() })
diff --git a/test/out/compute/calc-15.out b/test/out/compute/calc-15.out
--- a/test/out/compute/calc-15.out
+++ b/test/out/compute/calc-15.out
@@ -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() })
diff --git a/test/out/compute/calc-16.out b/test/out/compute/calc-16.out
--- a/test/out/compute/calc-16.out
+++ b/test/out/compute/calc-16.out
@@ -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() })
diff --git a/test/out/compute/calc-26.out b/test/out/compute/calc-26.out
--- a/test/out/compute/calc-26.out
+++ b/test/out/compute/calc-26.out
@@ -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() })
diff --git a/test/out/compute/calc-28.out b/test/out/compute/calc-28.out
--- a/test/out/compute/calc-28.out
+++ b/test/out/compute/calc-28.out
@@ -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() })
diff --git a/test/out/compute/calc-30.out b/test/out/compute/calc-30.out
--- a/test/out/compute/calc-30.out
+++ b/test/out/compute/calc-30.out
@@ -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() })
diff --git a/test/out/compute/calc-31.out b/test/out/compute/calc-31.out
--- a/test/out/compute/calc-31.out
+++ b/test/out/compute/calc-31.out
@@ -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() })
diff --git a/test/out/compute/calc-32.out b/test/out/compute/calc-32.out
--- a/test/out/compute/calc-32.out
+++ b/test/out/compute/calc-32.out
@@ -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() })
diff --git a/test/out/compute/calc-36.out b/test/out/compute/calc-36.out
--- a/test/out/compute/calc-36.out
+++ b/test/out/compute/calc-36.out
@@ -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() })
diff --git a/test/out/compute/construct-00.out b/test/out/compute/construct-00.out
--- a/test/out/compute/construct-00.out
+++ b/test/out/compute/construct-00.out
@@ -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() })
diff --git a/test/out/compute/construct-01.out b/test/out/compute/construct-01.out
--- a/test/out/compute/construct-01.out
+++ b/test/out/compute/construct-01.out
@@ -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() })
diff --git a/test/out/compute/construct-07.out b/test/out/compute/construct-07.out
--- a/test/out/compute/construct-07.out
+++ b/test/out/compute/construct-07.out
@@ -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() })
diff --git a/test/out/compute/construct-09.out b/test/out/compute/construct-09.out
--- a/test/out/compute/construct-09.out
+++ b/test/out/compute/construct-09.out
@@ -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() })
diff --git a/test/out/compute/construct-11.out b/test/out/compute/construct-11.out
--- a/test/out/compute/construct-11.out
+++ b/test/out/compute/construct-11.out
@@ -58,6 +58,6 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/compute/data-00.out b/test/out/compute/data-00.out
--- a/test/out/compute/data-00.out
+++ b/test/out/compute/data-00.out
@@ -60,9 +60,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compute/data-03.out b/test/out/compute/data-03.out
--- a/test/out/compute/data-03.out
+++ b/test/out/compute/data-03.out
@@ -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() })
diff --git a/test/out/compute/data-06.out b/test/out/compute/data-06.out
--- a/test/out/compute/data-06.out
+++ b/test/out/compute/data-06.out
@@ -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() })
diff --git a/test/out/compute/data-08.out b/test/out/compute/data-08.out
--- a/test/out/compute/data-08.out
+++ b/test/out/compute/data-08.out
@@ -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() })
diff --git a/test/out/compute/data-10.out b/test/out/compute/data-10.out
--- a/test/out/compute/data-10.out
+++ b/test/out/compute/data-10.out
@@ -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() })
diff --git a/test/out/compute/data-12.out b/test/out/compute/data-12.out
--- a/test/out/compute/data-12.out
+++ b/test/out/compute/data-12.out
@@ -124,9 +124,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [✅]), 
-  parbreak() }
+                 text(body: [✅]), 
+                 parbreak() })
diff --git a/test/out/compute/foundations-00.out b/test/out/compute/foundations-00.out
--- a/test/out/compute/foundations-00.out
+++ b/test/out/compute/foundations-00.out
@@ -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() })
diff --git a/test/out/compute/foundations-01.out b/test/out/compute/foundations-01.out
--- a/test/out/compute/foundations-01.out
+++ b/test/out/compute/foundations-01.out
@@ -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() })
diff --git a/test/out/compute/foundations-12.out b/test/out/compute/foundations-12.out
--- a/test/out/compute/foundations-12.out
+++ b/test/out/compute/foundations-12.out
@@ -65,10 +65,10 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/compute/foundations-13.out b/test/out/compute/foundations-13.out
--- a/test/out/compute/foundations-13.out
+++ b/test/out/compute/foundations-13.out
@@ -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() })
diff --git a/test/out/compute/foundations-14.out b/test/out/compute/foundations-14.out
--- a/test/out/compute/foundations-14.out
+++ b/test/out/compute/foundations-14.out
@@ -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() })
diff --git a/test/out/compute/foundations-16.out b/test/out/compute/foundations-16.out
--- a/test/out/compute/foundations-16.out
+++ b/test/out/compute/foundations-16.out
@@ -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() })
diff --git a/test/out/layout/align-00.out b/test/out/layout/align-00.out
--- a/test/out/layout/align-00.out
+++ b/test/out/layout/align-00.out
@@ -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() })
diff --git a/test/out/layout/align-01.out b/test/out/layout/align-01.out
--- a/test/out/layout/align-01.out
+++ b/test/out/layout/align-01.out
@@ -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() })
diff --git a/test/out/layout/align-02.out b/test/out/layout/align-02.out
--- a/test/out/layout/align-02.out
+++ b/test/out/layout/align-02.out
@@ -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() })
diff --git a/test/out/layout/align-03.out b/test/out/layout/align-03.out
--- a/test/out/layout/align-03.out
+++ b/test/out/layout/align-03.out
@@ -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() })
diff --git a/test/out/layout/block-sizing-00.out b/test/out/layout/block-sizing-00.out
--- a/test/out/layout/block-sizing-00.out
+++ b/test/out/layout/block-sizing-00.out
@@ -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() })
diff --git a/test/out/layout/block-sizing-01.out b/test/out/layout/block-sizing-01.out
--- a/test/out/layout/block-sizing-01.out
+++ b/test/out/layout/block-sizing-01.out
@@ -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() })
diff --git a/test/out/layout/block-spacing-00.out b/test/out/layout/block-spacing-00.out
--- a/test/out/layout/block-spacing-00.out
+++ b/test/out/layout/block-spacing-00.out
@@ -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() })
diff --git a/test/out/layout/clip-00.out b/test/out/layout/clip-00.out
--- a/test/out/layout/clip-00.out
+++ b/test/out/layout/clip-00.out
@@ -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() })
diff --git a/test/out/layout/clip-01.out b/test/out/layout/clip-01.out
--- a/test/out/layout/clip-01.out
+++ b/test/out/layout/clip-01.out
@@ -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() })
diff --git a/test/out/layout/clip-02.out b/test/out/layout/clip-02.out
--- a/test/out/layout/clip-02.out
+++ b/test/out/layout/clip-02.out
@@ -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() })
diff --git a/test/out/layout/clip-03.out b/test/out/layout/clip-03.out
--- a/test/out/layout/clip-03.out
+++ b/test/out/layout/clip-03.out
@@ -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() })
diff --git a/test/out/layout/columns-00.out b/test/out/layout/columns-00.out
--- a/test/out/layout/columns-00.out
+++ b/test/out/layout/columns-00.out
@@ -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() })
diff --git a/test/out/layout/columns-01.out b/test/out/layout/columns-01.out
--- a/test/out/layout/columns-01.out
+++ b/test/out/layout/columns-01.out
@@ -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() })
diff --git a/test/out/layout/columns-02.out b/test/out/layout/columns-02.out
--- a/test/out/layout/columns-02.out
+++ b/test/out/layout/columns-02.out
@@ -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() })
diff --git a/test/out/layout/columns-03.out b/test/out/layout/columns-03.out
--- a/test/out/layout/columns-03.out
+++ b/test/out/layout/columns-03.out
@@ -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() })
diff --git a/test/out/layout/columns-04.out b/test/out/layout/columns-04.out
--- a/test/out/layout/columns-04.out
+++ b/test/out/layout/columns-04.out
@@ -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() })
diff --git a/test/out/layout/columns-05.out b/test/out/layout/columns-05.out
--- a/test/out/layout/columns-05.out
+++ b/test/out/layout/columns-05.out
@@ -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() })
diff --git a/test/out/layout/columns-06.out b/test/out/layout/columns-06.out
--- a/test/out/layout/columns-06.out
+++ b/test/out/layout/columns-06.out
@@ -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() })
diff --git a/test/out/layout/columns-07.out b/test/out/layout/columns-07.out
--- a/test/out/layout/columns-07.out
+++ b/test/out/layout/columns-07.out
@@ -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() })
diff --git a/test/out/layout/columns-08.out b/test/out/layout/columns-08.out
--- a/test/out/layout/columns-08.out
+++ b/test/out/layout/columns-08.out
@@ -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() })
diff --git a/test/out/layout/columns-09.out b/test/out/layout/columns-09.out
--- a/test/out/layout/columns-09.out
+++ b/test/out/layout/columns-09.out
@@ -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() })
diff --git a/test/out/layout/container-00.out b/test/out/layout/container-00.out
--- a/test/out/layout/container-00.out
+++ b/test/out/layout/container-00.out
@@ -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() })
diff --git a/test/out/layout/container-01.out b/test/out/layout/container-01.out
--- a/test/out/layout/container-01.out
+++ b/test/out/layout/container-01.out
@@ -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() })
diff --git a/test/out/layout/container-02.out b/test/out/layout/container-02.out
--- a/test/out/layout/container-02.out
+++ b/test/out/layout/container-02.out
@@ -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() })
diff --git a/test/out/layout/container-03.out b/test/out/layout/container-03.out
--- a/test/out/layout/container-03.out
+++ b/test/out/layout/container-03.out
@@ -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() })
diff --git a/test/out/layout/container-04.out b/test/out/layout/container-04.out
--- a/test/out/layout/container-04.out
+++ b/test/out/layout/container-04.out
@@ -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() })
diff --git a/test/out/layout/container-fill-00.out b/test/out/layout/container-fill-00.out
--- a/test/out/layout/container-fill-00.out
+++ b/test/out/layout/container-fill-00.out
@@ -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() })
diff --git a/test/out/layout/enum-00.out b/test/out/layout/enum-00.out
--- a/test/out/layout/enum-00.out
+++ b/test/out/layout/enum-00.out
@@ -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() })
diff --git a/test/out/layout/enum-01.out b/test/out/layout/enum-01.out
--- a/test/out/layout/enum-01.out
+++ b/test/out/layout/enum-01.out
@@ -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) })
diff --git a/test/out/layout/enum-02.out b/test/out/layout/enum-02.out
--- a/test/out/layout/enum-02.out
+++ b/test/out/layout/enum-02.out
@@ -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() })
diff --git a/test/out/layout/enum-03.out b/test/out/layout/enum-03.out
--- a/test/out/layout/enum-03.out
+++ b/test/out/layout/enum-03.out
@@ -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() }))) })
diff --git a/test/out/layout/enum-04.out b/test/out/layout/enum-04.out
--- a/test/out/layout/enum-04.out
+++ b/test/out/layout/enum-04.out
@@ -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() })
diff --git a/test/out/layout/enum-05.out b/test/out/layout/enum-05.out
--- a/test/out/layout/enum-05.out
+++ b/test/out/layout/enum-05.out
@@ -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() })
diff --git a/test/out/layout/enum-06.out b/test/out/layout/enum-06.out
--- a/test/out/layout/enum-06.out
+++ b/test/out/layout/enum-06.out
@@ -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() })
diff --git a/test/out/layout/enum-align-00.out b/test/out/layout/enum-align-00.out
--- a/test/out/layout/enum-align-00.out
+++ b/test/out/layout/enum-align-00.out
@@ -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() })) })
diff --git a/test/out/layout/enum-align-01.out b/test/out/layout/enum-align-01.out
--- a/test/out/layout/enum-align-01.out
+++ b/test/out/layout/enum-align-01.out
@@ -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) })
diff --git a/test/out/layout/enum-align-02.out b/test/out/layout/enum-align-02.out
--- a/test/out/layout/enum-align-02.out
+++ b/test/out/layout/enum-align-02.out
@@ -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) })
diff --git a/test/out/layout/enum-numbering-00.out b/test/out/layout/enum-numbering-00.out
--- a/test/out/layout/enum-numbering-00.out
+++ b/test/out/layout/enum-numbering-00.out
@@ -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.*)") })
diff --git a/test/out/layout/enum-numbering-01.out b/test/out/layout/enum-numbering-01.out
--- a/test/out/layout/enum-numbering-01.out
+++ b/test/out/layout/enum-numbering-01.out
@@ -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.") })
diff --git a/test/out/layout/enum-numbering-02.out b/test/out/layout/enum-numbering-02.out
--- a/test/out/layout/enum-numbering-02.out
+++ b/test/out/layout/enum-numbering-02.out
@@ -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() })
diff --git a/test/out/layout/enum-numbering-03.out b/test/out/layout/enum-numbering-03.out
--- a/test/out/layout/enum-numbering-03.out
+++ b/test/out/layout/enum-numbering-03.out
@@ -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: ) })
diff --git a/test/out/layout/enum-numbering-04.out b/test/out/layout/enum-numbering-04.out
--- a/test/out/layout/enum-numbering-04.out
+++ b/test/out/layout/enum-numbering-04.out
@@ -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: ) })
diff --git a/test/out/layout/flow-orphan-00.out b/test/out/layout/flow-orphan-00.out
--- a/test/out/layout/flow-orphan-00.out
+++ b/test/out/layout/flow-orphan-00.out
@@ -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() })
diff --git a/test/out/layout/flow-orphan-01.out b/test/out/layout/flow-orphan-01.out
--- a/test/out/layout/flow-orphan-01.out
+++ b/test/out/layout/flow-orphan-01.out
@@ -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() })
diff --git a/test/out/layout/grid-1-00.out b/test/out/layout/grid-1-00.out
--- a/test/out/layout/grid-1-00.out
+++ b/test/out/layout/grid-1-00.out
@@ -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() })
diff --git a/test/out/layout/grid-1-01.out b/test/out/layout/grid-1-01.out
--- a/test/out/layout/grid-1-01.out
+++ b/test/out/layout/grid-1-01.out
@@ -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() })
diff --git a/test/out/layout/grid-1-02.out b/test/out/layout/grid-1-02.out
--- a/test/out/layout/grid-1-02.out
+++ b/test/out/layout/grid-1-02.out
@@ -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() })
diff --git a/test/out/layout/grid-2-00.out b/test/out/layout/grid-2-00.out
--- a/test/out/layout/grid-2-00.out
+++ b/test/out/layout/grid-2-00.out
@@ -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() })
diff --git a/test/out/layout/grid-3-00.out b/test/out/layout/grid-3-00.out
--- a/test/out/layout/grid-3-00.out
+++ b/test/out/layout/grid-3-00.out
@@ -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() })
diff --git a/test/out/layout/grid-3-01.out b/test/out/layout/grid-3-01.out
--- a/test/out/layout/grid-3-01.out
+++ b/test/out/layout/grid-3-01.out
@@ -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() })
diff --git a/test/out/layout/grid-3-02.out b/test/out/layout/grid-3-02.out
--- a/test/out/layout/grid-3-02.out
+++ b/test/out/layout/grid-3-02.out
@@ -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() })
diff --git a/test/out/layout/grid-3-03.out b/test/out/layout/grid-3-03.out
--- a/test/out/layout/grid-3-03.out
+++ b/test/out/layout/grid-3-03.out
@@ -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() })
diff --git a/test/out/layout/grid-4-00.out b/test/out/layout/grid-4-00.out
--- a/test/out/layout/grid-4-00.out
+++ b/test/out/layout/grid-4-00.out
@@ -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() })
diff --git a/test/out/layout/grid-4-01.out b/test/out/layout/grid-4-01.out
--- a/test/out/layout/grid-4-01.out
+++ b/test/out/layout/grid-4-01.out
@@ -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() })
diff --git a/test/out/layout/grid-4-02.out b/test/out/layout/grid-4-02.out
--- a/test/out/layout/grid-4-02.out
+++ b/test/out/layout/grid-4-02.out
@@ -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() })
diff --git a/test/out/layout/grid-5-00.out b/test/out/layout/grid-5-00.out
--- a/test/out/layout/grid-5-00.out
+++ b/test/out/layout/grid-5-00.out
@@ -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() })
diff --git a/test/out/layout/grid-5-01.out b/test/out/layout/grid-5-01.out
--- a/test/out/layout/grid-5-01.out
+++ b/test/out/layout/grid-5-01.out
@@ -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() })
diff --git a/test/out/layout/grid-auto-shrink-00.out b/test/out/layout/grid-auto-shrink-00.out
--- a/test/out/layout/grid-auto-shrink-00.out
+++ b/test/out/layout/grid-auto-shrink-00.out
@@ -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() })
diff --git a/test/out/layout/grid-rtl-00.out b/test/out/layout/grid-rtl-00.out
--- a/test/out/layout/grid-rtl-00.out
+++ b/test/out/layout/grid-rtl-00.out
@@ -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() })) })
diff --git a/test/out/layout/grid-rtl-01.out b/test/out/layout/grid-rtl-01.out
--- a/test/out/layout/grid-rtl-01.out
+++ b/test/out/layout/grid-rtl-01.out
@@ -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() })
diff --git a/test/out/layout/hide-00.out b/test/out/layout/hide-00.out
--- a/test/out/layout/hide-00.out
+++ b/test/out/layout/hide-00.out
@@ -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() })
diff --git a/test/out/layout/list-00.out b/test/out/layout/list-00.out
--- a/test/out/layout/list-00.out
+++ b/test/out/layout/list-00.out
@@ -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() })
diff --git a/test/out/layout/list-01.out b/test/out/layout/list-01.out
--- a/test/out/layout/list-01.out
+++ b/test/out/layout/list-01.out
@@ -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() })) })
diff --git a/test/out/layout/list-02.out b/test/out/layout/list-02.out
--- a/test/out/layout/list-02.out
+++ b/test/out/layout/list-02.out
@@ -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() })
diff --git a/test/out/layout/list-03.out b/test/out/layout/list-03.out
--- a/test/out/layout/list-03.out
+++ b/test/out/layout/list-03.out
@@ -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() })) })
diff --git a/test/out/layout/list-04.out b/test/out/layout/list-04.out
--- a/test/out/layout/list-04.out
+++ b/test/out/layout/list-04.out
@@ -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() })) })
diff --git a/test/out/layout/list-05.out b/test/out/layout/list-05.out
--- a/test/out/layout/list-05.out
+++ b/test/out/layout/list-05.out
@@ -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() })) })
diff --git a/test/out/layout/list-06.out b/test/out/layout/list-06.out
--- a/test/out/layout/list-06.out
+++ b/test/out/layout/list-06.out
@@ -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() })) })
diff --git a/test/out/layout/list-07.out b/test/out/layout/list-07.out
--- a/test/out/layout/list-07.out
+++ b/test/out/layout/list-07.out
@@ -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() })
diff --git a/test/out/layout/list-08.out b/test/out/layout/list-08.out
--- a/test/out/layout/list-08.out
+++ b/test/out/layout/list-08.out
@@ -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() })) })
diff --git a/test/out/layout/list-attach-00.out b/test/out/layout/list-attach-00.out
--- a/test/out/layout/list-attach-00.out
+++ b/test/out/layout/list-attach-00.out
@@ -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() })
diff --git a/test/out/layout/list-attach-01.out b/test/out/layout/list-attach-01.out
--- a/test/out/layout/list-attach-01.out
+++ b/test/out/layout/list-attach-01.out
@@ -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() })) })
diff --git a/test/out/layout/list-attach-02.out b/test/out/layout/list-attach-02.out
--- a/test/out/layout/list-attach-02.out
+++ b/test/out/layout/list-attach-02.out
@@ -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() })) })
diff --git a/test/out/layout/list-attach-03.out b/test/out/layout/list-attach-03.out
--- a/test/out/layout/list-attach-03.out
+++ b/test/out/layout/list-attach-03.out
@@ -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() })
diff --git a/test/out/layout/list-attach-04.out b/test/out/layout/list-attach-04.out
--- a/test/out/layout/list-attach-04.out
+++ b/test/out/layout/list-attach-04.out
@@ -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() })
diff --git a/test/out/layout/list-attach-05.out b/test/out/layout/list-attach-05.out
--- a/test/out/layout/list-attach-05.out
+++ b/test/out/layout/list-attach-05.out
@@ -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() })
diff --git a/test/out/layout/list-marker-00.out b/test/out/layout/list-marker-00.out
--- a/test/out/layout/list-marker-00.out
+++ b/test/out/layout/list-marker-00.out
@@ -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: [–])) })
diff --git a/test/out/layout/list-marker-01.out b/test/out/layout/list-marker-01.out
--- a/test/out/layout/list-marker-01.out
+++ b/test/out/layout/list-marker-01.out
@@ -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: [•]))) })
diff --git a/test/out/layout/list-marker-02.out b/test/out/layout/list-marker-02.out
--- a/test/out/layout/list-marker-02.out
+++ b/test/out/layout/list-marker-02.out
@@ -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: ) })
diff --git a/test/out/layout/list-marker-03.out b/test/out/layout/list-marker-03.out
--- a/test/out/layout/list-marker-03.out
+++ b/test/out/layout/list-marker-03.out
@@ -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: ({  }))) })
diff --git a/test/out/layout/pad-00.out b/test/out/layout/pad-00.out
--- a/test/out/layout/pad-00.out
+++ b/test/out/layout/pad-00.out
@@ -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() })
diff --git a/test/out/layout/pad-01.out b/test/out/layout/pad-01.out
--- a/test/out/layout/pad-01.out
+++ b/test/out/layout/pad-01.out
@@ -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() })
diff --git a/test/out/layout/pad-02.out b/test/out/layout/pad-02.out
--- a/test/out/layout/pad-02.out
+++ b/test/out/layout/pad-02.out
@@ -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() })
diff --git a/test/out/layout/pad-03.out b/test/out/layout/pad-03.out
--- a/test/out/layout/pad-03.out
+++ b/test/out/layout/pad-03.out
@@ -49,7 +49,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  pad(body: {  }, rest: 50%), 
-  parbreak() }
+                 pad(body: {  }, rest: 50%), 
+                 parbreak() })
diff --git a/test/out/layout/page-00.out b/test/out/layout/page-00.out
--- a/test/out/layout/page-00.out
+++ b/test/out/layout/page-00.out
@@ -48,7 +48,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  page(body: {  }), 
-  parbreak() }
+                 page(body: {  }), 
+                 parbreak() })
diff --git a/test/out/layout/page-01.out b/test/out/layout/page-01.out
--- a/test/out/layout/page-01.out
+++ b/test/out/layout/page-01.out
@@ -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() })
diff --git a/test/out/layout/page-02.out b/test/out/layout/page-02.out
--- a/test/out/layout/page-02.out
+++ b/test/out/layout/page-02.out
@@ -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() })
diff --git a/test/out/layout/page-03.out b/test/out/layout/page-03.out
--- a/test/out/layout/page-03.out
+++ b/test/out/layout/page-03.out
@@ -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() })
diff --git a/test/out/layout/page-04.out b/test/out/layout/page-04.out
--- a/test/out/layout/page-04.out
+++ b/test/out/layout/page-04.out
@@ -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() })
diff --git a/test/out/layout/page-05.out b/test/out/layout/page-05.out
--- a/test/out/layout/page-05.out
+++ b/test/out/layout/page-05.out
@@ -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() })
diff --git a/test/out/layout/page-margin-00.out b/test/out/layout/page-margin-00.out
--- a/test/out/layout/page-margin-00.out
+++ b/test/out/layout/page-margin-00.out
@@ -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() })
diff --git a/test/out/layout/page-margin-01.out b/test/out/layout/page-margin-01.out
--- a/test/out/layout/page-margin-01.out
+++ b/test/out/layout/page-margin-01.out
@@ -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() })
diff --git a/test/out/layout/page-marginals-00.out b/test/out/layout/page-marginals-00.out
--- a/test/out/layout/page-marginals-00.out
+++ b/test/out/layout/page-marginals-00.out
@@ -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() })
diff --git a/test/out/layout/page-style-00.out b/test/out/layout/page-style-00.out
--- a/test/out/layout/page-style-00.out
+++ b/test/out/layout/page-style-00.out
@@ -53,6 +53,6 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/layout/page-style-01.out b/test/out/layout/page-style-01.out
--- a/test/out/layout/page-style-01.out
+++ b/test/out/layout/page-style-01.out
@@ -55,9 +55,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  pagebreak(), 
-  parbreak() }
+                 pagebreak(), 
+                 parbreak() })
diff --git a/test/out/layout/page-style-02.out b/test/out/layout/page-style-02.out
--- a/test/out/layout/page-style-02.out
+++ b/test/out/layout/page-style-02.out
@@ -64,10 +64,10 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/layout/page-style-03.out b/test/out/layout/page-style-03.out
--- a/test/out/layout/page-style-03.out
+++ b/test/out/layout/page-style-03.out
@@ -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() })
diff --git a/test/out/layout/pagebreak-00.out b/test/out/layout/pagebreak-00.out
--- a/test/out/layout/pagebreak-00.out
+++ b/test/out/layout/pagebreak-00.out
@@ -48,7 +48,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  pagebreak(), 
-  parbreak() }
+                 pagebreak(), 
+                 parbreak() })
diff --git a/test/out/layout/pagebreak-01.out b/test/out/layout/pagebreak-01.out
--- a/test/out/layout/pagebreak-01.out
+++ b/test/out/layout/pagebreak-01.out
@@ -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() })
diff --git a/test/out/layout/pagebreak-02.out b/test/out/layout/pagebreak-02.out
--- a/test/out/layout/pagebreak-02.out
+++ b/test/out/layout/pagebreak-02.out
@@ -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() })
diff --git a/test/out/layout/pagebreak-03.out b/test/out/layout/pagebreak-03.out
--- a/test/out/layout/pagebreak-03.out
+++ b/test/out/layout/pagebreak-03.out
@@ -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() })
diff --git a/test/out/layout/pagebreak-04.out b/test/out/layout/pagebreak-04.out
--- a/test/out/layout/pagebreak-04.out
+++ b/test/out/layout/pagebreak-04.out
@@ -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() })
diff --git a/test/out/layout/par-00.out b/test/out/layout/par-00.out
--- a/test/out/layout/par-00.out
+++ b/test/out/layout/par-00.out
@@ -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() })
diff --git a/test/out/layout/par-01.out b/test/out/layout/par-01.out
--- a/test/out/layout/par-01.out
+++ b/test/out/layout/par-01.out
@@ -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() })
diff --git a/test/out/layout/par-02.out b/test/out/layout/par-02.out
--- a/test/out/layout/par-02.out
+++ b/test/out/layout/par-02.out
@@ -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() })
diff --git a/test/out/layout/par-03.out b/test/out/layout/par-03.out
--- a/test/out/layout/par-03.out
+++ b/test/out/layout/par-03.out
@@ -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() })
diff --git a/test/out/layout/par-bidi-00.out b/test/out/layout/par-bidi-00.out
--- a/test/out/layout/par-bidi-00.out
+++ b/test/out/layout/par-bidi-00.out
@@ -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() })
diff --git a/test/out/layout/par-bidi-01.out b/test/out/layout/par-bidi-01.out
--- a/test/out/layout/par-bidi-01.out
+++ b/test/out/layout/par-bidi-01.out
@@ -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() })
diff --git a/test/out/layout/par-bidi-02.out b/test/out/layout/par-bidi-02.out
--- a/test/out/layout/par-bidi-02.out
+++ b/test/out/layout/par-bidi-02.out
@@ -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() })
diff --git a/test/out/layout/par-bidi-03.out b/test/out/layout/par-bidi-03.out
--- a/test/out/layout/par-bidi-03.out
+++ b/test/out/layout/par-bidi-03.out
@@ -57,9 +57,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 א⁦A⁧Bב⁩?], 
-       dir: rtl), 
-  parbreak() }
+                      dir: rtl), 
+                 parbreak() })
diff --git a/test/out/layout/par-bidi-04.out b/test/out/layout/par-bidi-04.out
--- a/test/out/layout/par-bidi-04.out
+++ b/test/out/layout/par-bidi-04.out
@@ -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() })
diff --git a/test/out/layout/par-bidi-05.out b/test/out/layout/par-bidi-05.out
--- a/test/out/layout/par-bidi-05.out
+++ b/test/out/layout/par-bidi-05.out
@@ -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() })
diff --git a/test/out/layout/par-bidi-06.out b/test/out/layout/par-bidi-06.out
--- a/test/out/layout/par-bidi-06.out
+++ b/test/out/layout/par-bidi-06.out
@@ -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() })
diff --git a/test/out/layout/par-bidi-07.out b/test/out/layout/par-bidi-07.out
--- a/test/out/layout/par-bidi-07.out
+++ b/test/out/layout/par-bidi-07.out
@@ -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() })
diff --git a/test/out/layout/par-indent-00.out b/test/out/layout/par-indent-00.out
--- a/test/out/layout/par-indent-00.out
+++ b/test/out/layout/par-indent-00.out
@@ -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() })
diff --git a/test/out/layout/par-indent-01.out b/test/out/layout/par-indent-01.out
--- a/test/out/layout/par-indent-01.out
+++ b/test/out/layout/par-indent-01.out
@@ -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() })
diff --git a/test/out/layout/par-indent-02.out b/test/out/layout/par-indent-02.out
--- a/test/out/layout/par-indent-02.out
+++ b/test/out/layout/par-indent-02.out
@@ -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() })
diff --git a/test/out/layout/par-indent-03.out b/test/out/layout/par-indent-03.out
--- a/test/out/layout/par-indent-03.out
+++ b/test/out/layout/par-indent-03.out
@@ -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() })
diff --git a/test/out/layout/par-indent-04.out b/test/out/layout/par-indent-04.out
--- a/test/out/layout/par-indent-04.out
+++ b/test/out/layout/par-indent-04.out
@@ -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() })
diff --git a/test/out/layout/par-justify-00.out b/test/out/layout/par-justify-00.out
--- a/test/out/layout/par-justify-00.out
+++ b/test/out/layout/par-justify-00.out
@@ -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() })
diff --git a/test/out/layout/par-justify-01.out b/test/out/layout/par-justify-01.out
--- a/test/out/layout/par-justify-01.out
+++ b/test/out/layout/par-justify-01.out
@@ -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() })
diff --git a/test/out/layout/par-justify-02.out b/test/out/layout/par-justify-02.out
--- a/test/out/layout/par-justify-02.out
+++ b/test/out/layout/par-justify-02.out
@@ -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() })
diff --git a/test/out/layout/par-justify-03.out b/test/out/layout/par-justify-03.out
--- a/test/out/layout/par-justify-03.out
+++ b/test/out/layout/par-justify-03.out
@@ -55,8 +55,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/layout/par-justify-04.out b/test/out/layout/par-justify-04.out
--- a/test/out/layout/par-justify-04.out
+++ b/test/out/layout/par-justify-04.out
@@ -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() })
diff --git a/test/out/layout/par-justify-cjk-00.out b/test/out/layout/par-justify-cjk-00.out
--- a/test/out/layout/par-justify-cjk-00.out
+++ b/test/out/layout/par-justify-cjk-00.out
@@ -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() })
diff --git a/test/out/layout/par-justify-cjk-01.out b/test/out/layout/par-justify-cjk-01.out
--- a/test/out/layout/par-justify-cjk-01.out
+++ b/test/out/layout/par-justify-cjk-01.out
@@ -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() })
diff --git a/test/out/layout/par-justify-cjk-02.out b/test/out/layout/par-justify-cjk-02.out
--- a/test/out/layout/par-justify-cjk-02.out
+++ b/test/out/layout/par-justify-cjk-02.out
@@ -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() })
diff --git a/test/out/layout/par-justify-cjk-03.out b/test/out/layout/par-justify-cjk-03.out
--- a/test/out/layout/par-justify-cjk-03.out
+++ b/test/out/layout/par-justify-cjk-03.out
@@ -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() })
diff --git a/test/out/layout/par-knuth-00.out b/test/out/layout/par-knuth-00.out
--- a/test/out/layout/par-knuth-00.out
+++ b/test/out/layout/par-knuth-00.out
@@ -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() })
diff --git a/test/out/layout/par-simple-00.out b/test/out/layout/par-simple-00.out
--- a/test/out/layout/par-simple-00.out
+++ b/test/out/layout/par-simple-00.out
@@ -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() })
diff --git a/test/out/layout/place-00.out b/test/out/layout/place-00.out
--- a/test/out/layout/place-00.out
+++ b/test/out/layout/place-00.out
@@ -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() })
diff --git a/test/out/layout/place-01.out b/test/out/layout/place-01.out
--- a/test/out/layout/place-01.out
+++ b/test/out/layout/place-01.out
@@ -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() })
diff --git a/test/out/layout/place-background-00.out b/test/out/layout/place-background-00.out
--- a/test/out/layout/place-background-00.out
+++ b/test/out/layout/place-background-00.out
@@ -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() })
diff --git a/test/out/layout/repeat-00.out b/test/out/layout/repeat-00.out
--- a/test/out/layout/repeat-00.out
+++ b/test/out/layout/repeat-00.out
@@ -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() })
diff --git a/test/out/layout/repeat-01.out b/test/out/layout/repeat-01.out
--- a/test/out/layout/repeat-01.out
+++ b/test/out/layout/repeat-01.out
@@ -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() })
diff --git a/test/out/layout/repeat-02.out b/test/out/layout/repeat-02.out
--- a/test/out/layout/repeat-02.out
+++ b/test/out/layout/repeat-02.out
@@ -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() })
diff --git a/test/out/layout/repeat-03.out b/test/out/layout/repeat-03.out
--- a/test/out/layout/repeat-03.out
+++ b/test/out/layout/repeat-03.out
@@ -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() })
diff --git a/test/out/layout/repeat-04.out b/test/out/layout/repeat-04.out
--- a/test/out/layout/repeat-04.out
+++ b/test/out/layout/repeat-04.out
@@ -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() })
diff --git a/test/out/layout/spacing-00.out b/test/out/layout/spacing-00.out
--- a/test/out/layout/spacing-00.out
+++ b/test/out/layout/spacing-00.out
@@ -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() })
diff --git a/test/out/layout/spacing-01.out b/test/out/layout/spacing-01.out
--- a/test/out/layout/spacing-01.out
+++ b/test/out/layout/spacing-01.out
@@ -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() })
diff --git a/test/out/layout/spacing-02.out b/test/out/layout/spacing-02.out
--- a/test/out/layout/spacing-02.out
+++ b/test/out/layout/spacing-02.out
@@ -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() })
diff --git a/test/out/layout/stack-1-00.out b/test/out/layout/stack-1-00.out
--- a/test/out/layout/stack-1-00.out
+++ b/test/out/layout/stack-1-00.out
@@ -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() })
diff --git a/test/out/layout/stack-1-01.out b/test/out/layout/stack-1-01.out
--- a/test/out/layout/stack-1-01.out
+++ b/test/out/layout/stack-1-01.out
@@ -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() })
diff --git a/test/out/layout/stack-1-02.out b/test/out/layout/stack-1-02.out
--- a/test/out/layout/stack-1-02.out
+++ b/test/out/layout/stack-1-02.out
@@ -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() })
diff --git a/test/out/layout/stack-1-03.out b/test/out/layout/stack-1-03.out
--- a/test/out/layout/stack-1-03.out
+++ b/test/out/layout/stack-1-03.out
@@ -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() })
diff --git a/test/out/layout/stack-2-00.out b/test/out/layout/stack-2-00.out
--- a/test/out/layout/stack-2-00.out
+++ b/test/out/layout/stack-2-00.out
@@ -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() })
diff --git a/test/out/layout/stack-2-01.out b/test/out/layout/stack-2-01.out
--- a/test/out/layout/stack-2-01.out
+++ b/test/out/layout/stack-2-01.out
@@ -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() })
diff --git a/test/out/layout/table-00.out b/test/out/layout/table-00.out
--- a/test/out/layout/table-00.out
+++ b/test/out/layout/table-00.out
@@ -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() })
diff --git a/test/out/layout/table-01.out b/test/out/layout/table-01.out
--- a/test/out/layout/table-01.out
+++ b/test/out/layout/table-01.out
@@ -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() })
diff --git a/test/out/layout/table-02.out b/test/out/layout/table-02.out
--- a/test/out/layout/table-02.out
+++ b/test/out/layout/table-02.out
@@ -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() })
diff --git a/test/out/layout/table-03.out b/test/out/layout/table-03.out
--- a/test/out/layout/table-03.out
+++ b/test/out/layout/table-03.out
@@ -47,7 +47,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  table(children: ()), 
-  parbreak() }
+                 table(children: ()), 
+                 parbreak() })
diff --git a/test/out/layout/terms-00.out b/test/out/layout/terms-00.out
--- a/test/out/layout/terms-00.out
+++ b/test/out/layout/terms-00.out
@@ -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() })
diff --git a/test/out/layout/terms-01.out b/test/out/layout/terms-01.out
--- a/test/out/layout/terms-01.out
+++ b/test/out/layout/terms-01.out
@@ -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() })
diff --git a/test/out/layout/terms-02.out b/test/out/layout/terms-02.out
--- a/test/out/layout/terms-02.out
+++ b/test/out/layout/terms-02.out
@@ -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() }))) })
diff --git a/test/out/layout/terms-03.out b/test/out/layout/terms-03.out
--- a/test/out/layout/terms-03.out
+++ b/test/out/layout/terms-03.out
@@ -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) })
diff --git a/test/out/layout/terms-04.out b/test/out/layout/terms-04.out
--- a/test/out/layout/terms-04.out
+++ b/test/out/layout/terms-04.out
@@ -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) })
diff --git a/test/out/layout/terms-05.out b/test/out/layout/terms-05.out
--- a/test/out/layout/terms-05.out
+++ b/test/out/layout/terms-05.out
@@ -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() })
diff --git a/test/out/layout/transform-00.out b/test/out/layout/transform-00.out
--- a/test/out/layout/transform-00.out
+++ b/test/out/layout/transform-00.out
@@ -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() })
diff --git a/test/out/layout/transform-01.out b/test/out/layout/transform-01.out
--- a/test/out/layout/transform-01.out
+++ b/test/out/layout/transform-01.out
@@ -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() })
diff --git a/test/out/layout/transform-02.out b/test/out/layout/transform-02.out
--- a/test/out/layout/transform-02.out
+++ b/test/out/layout/transform-02.out
@@ -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() })
diff --git a/test/out/layout/transform-03.out b/test/out/layout/transform-03.out
--- a/test/out/layout/transform-03.out
+++ b/test/out/layout/transform-03.out
@@ -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() })
diff --git a/test/out/math/accent-00.out b/test/out/math/accent-00.out
--- a/test/out/math/accent-00.out
+++ b/test/out/math/accent-00.out
@@ -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() })
diff --git a/test/out/math/accent-01.out b/test/out/math/accent-01.out
--- a/test/out/math/accent-01.out
+++ b/test/out/math/accent-01.out
@@ -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() })
diff --git a/test/out/math/accent-02.out b/test/out/math/accent-02.out
--- a/test/out/math/accent-02.out
+++ b/test/out/math/accent-02.out
@@ -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() })
diff --git a/test/out/math/accent-03.out b/test/out/math/accent-03.out
--- a/test/out/math/accent-03.out
+++ b/test/out/math/accent-03.out
@@ -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() })
diff --git a/test/out/math/accent-04.out b/test/out/math/accent-04.out
--- a/test/out/math/accent-04.out
+++ b/test/out/math/accent-04.out
@@ -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() })
diff --git a/test/out/math/accent-05.out b/test/out/math/accent-05.out
--- a/test/out/math/accent-05.out
+++ b/test/out/math/accent-05.out
@@ -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() })
diff --git a/test/out/math/accent-06.out b/test/out/math/accent-06.out
--- a/test/out/math/accent-06.out
+++ b/test/out/math/accent-06.out
@@ -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() })
diff --git a/test/out/math/alignment-00.out b/test/out/math/alignment-00.out
--- a/test/out/math/alignment-00.out
+++ b/test/out/math/alignment-00.out
@@ -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() })
diff --git a/test/out/math/alignment-01.out b/test/out/math/alignment-01.out
--- a/test/out/math/alignment-01.out
+++ b/test/out/math/alignment-01.out
@@ -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() })
diff --git a/test/out/math/alignment-02.out b/test/out/math/alignment-02.out
--- a/test/out/math/alignment-02.out
+++ b/test/out/math/alignment-02.out
@@ -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() })
diff --git a/test/out/math/alignment-03.out b/test/out/math/alignment-03.out
--- a/test/out/math/alignment-03.out
+++ b/test/out/math/alignment-03.out
@@ -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() })
diff --git a/test/out/math/attach-00.out b/test/out/math/attach-00.out
--- a/test/out/math/attach-00.out
+++ b/test/out/math/attach-00.out
@@ -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() })
diff --git a/test/out/math/attach-01.out b/test/out/math/attach-01.out
--- a/test/out/math/attach-01.out
+++ b/test/out/math/attach-01.out
@@ -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() })
diff --git a/test/out/math/attach-02.out b/test/out/math/attach-02.out
--- a/test/out/math/attach-02.out
+++ b/test/out/math/attach-02.out
@@ -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() })
diff --git a/test/out/math/attach-03.out b/test/out/math/attach-03.out
--- a/test/out/math/attach-03.out
+++ b/test/out/math/attach-03.out
@@ -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() })
diff --git a/test/out/math/attach-04.out b/test/out/math/attach-04.out
--- a/test/out/math/attach-04.out
+++ b/test/out/math/attach-04.out
@@ -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() })
diff --git a/test/out/math/attach-05.out b/test/out/math/attach-05.out
--- a/test/out/math/attach-05.out
+++ b/test/out/math/attach-05.out
@@ -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() })
diff --git a/test/out/math/attach-06.out b/test/out/math/attach-06.out
--- a/test/out/math/attach-06.out
+++ b/test/out/math/attach-06.out
@@ -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() })
diff --git a/test/out/math/attach-07.out b/test/out/math/attach-07.out
--- a/test/out/math/attach-07.out
+++ b/test/out/math/attach-07.out
@@ -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() })
diff --git a/test/out/math/attach-08.out b/test/out/math/attach-08.out
--- a/test/out/math/attach-08.out
+++ b/test/out/math/attach-08.out
@@ -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() })
diff --git a/test/out/math/attach-09.out b/test/out/math/attach-09.out
--- a/test/out/math/attach-09.out
+++ b/test/out/math/attach-09.out
@@ -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() })
diff --git a/test/out/math/cancel-00.out b/test/out/math/cancel-00.out
--- a/test/out/math/cancel-00.out
+++ b/test/out/math/cancel-00.out
@@ -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() })
diff --git a/test/out/math/cancel-01.out b/test/out/math/cancel-01.out
--- a/test/out/math/cancel-01.out
+++ b/test/out/math/cancel-01.out
@@ -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() })
diff --git a/test/out/math/cancel-02.out b/test/out/math/cancel-02.out
--- a/test/out/math/cancel-02.out
+++ b/test/out/math/cancel-02.out
@@ -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() })
diff --git a/test/out/math/cancel-03.out b/test/out/math/cancel-03.out
--- a/test/out/math/cancel-03.out
+++ b/test/out/math/cancel-03.out
@@ -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() })
diff --git a/test/out/math/cancel-04.out b/test/out/math/cancel-04.out
--- a/test/out/math/cancel-04.out
+++ b/test/out/math/cancel-04.out
@@ -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() })
diff --git a/test/out/math/cancel-05.out b/test/out/math/cancel-05.out
--- a/test/out/math/cancel-05.out
+++ b/test/out/math/cancel-05.out
@@ -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() })
diff --git a/test/out/math/cases-00.out b/test/out/math/cases-00.out
--- a/test/out/math/cases-00.out
+++ b/test/out/math/cases-00.out
@@ -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() })
diff --git a/test/out/math/content-00.out b/test/out/math/content-00.out
--- a/test/out/math/content-00.out
+++ b/test/out/math/content-00.out
@@ -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() })
diff --git a/test/out/math/content-01.out b/test/out/math/content-01.out
--- a/test/out/math/content-01.out
+++ b/test/out/math/content-01.out
@@ -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() })
diff --git a/test/out/math/content-02.out b/test/out/math/content-02.out
--- a/test/out/math/content-02.out
+++ b/test/out/math/content-02.out
@@ -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() })
diff --git a/test/out/math/content-03.out b/test/out/math/content-03.out
--- a/test/out/math/content-03.out
+++ b/test/out/math/content-03.out
@@ -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() })
diff --git a/test/out/math/delimited-00.out b/test/out/math/delimited-00.out
--- a/test/out/math/delimited-00.out
+++ b/test/out/math/delimited-00.out
@@ -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() })
diff --git a/test/out/math/delimited-01.out b/test/out/math/delimited-01.out
--- a/test/out/math/delimited-01.out
+++ b/test/out/math/delimited-01.out
@@ -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() })
diff --git a/test/out/math/delimited-02.out b/test/out/math/delimited-02.out
--- a/test/out/math/delimited-02.out
+++ b/test/out/math/delimited-02.out
@@ -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() })
diff --git a/test/out/math/delimited-03.out b/test/out/math/delimited-03.out
--- a/test/out/math/delimited-03.out
+++ b/test/out/math/delimited-03.out
@@ -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() })
diff --git a/test/out/math/delimited-04.out b/test/out/math/delimited-04.out
--- a/test/out/math/delimited-04.out
+++ b/test/out/math/delimited-04.out
@@ -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() })
diff --git a/test/out/math/delimited-05.out b/test/out/math/delimited-05.out
--- a/test/out/math/delimited-05.out
+++ b/test/out/math/delimited-05.out
@@ -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() })
diff --git a/test/out/math/delimited-06.out b/test/out/math/delimited-06.out
--- a/test/out/math/delimited-06.out
+++ b/test/out/math/delimited-06.out
@@ -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() })
diff --git a/test/out/math/delimited-07.out b/test/out/math/delimited-07.out
--- a/test/out/math/delimited-07.out
+++ b/test/out/math/delimited-07.out
@@ -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() })
diff --git a/test/out/math/delimited-08.out b/test/out/math/delimited-08.out
--- a/test/out/math/delimited-08.out
+++ b/test/out/math/delimited-08.out
@@ -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() })
diff --git a/test/out/math/frac-00.out b/test/out/math/frac-00.out
--- a/test/out/math/frac-00.out
+++ b/test/out/math/frac-00.out
@@ -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() })
diff --git a/test/out/math/frac-01.out b/test/out/math/frac-01.out
--- a/test/out/math/frac-01.out
+++ b/test/out/math/frac-01.out
@@ -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() })
diff --git a/test/out/math/frac-02.out b/test/out/math/frac-02.out
--- a/test/out/math/frac-02.out
+++ b/test/out/math/frac-02.out
@@ -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() })
diff --git a/test/out/math/frac-03.out b/test/out/math/frac-03.out
--- a/test/out/math/frac-03.out
+++ b/test/out/math/frac-03.out
@@ -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() })
diff --git a/test/out/math/frac-05.out b/test/out/math/frac-05.out
--- a/test/out/math/frac-05.out
+++ b/test/out/math/frac-05.out
@@ -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() })
diff --git a/test/out/math/frac-06.out b/test/out/math/frac-06.out
--- a/test/out/math/frac-06.out
+++ b/test/out/math/frac-06.out
@@ -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() })
diff --git a/test/out/math/matrix-00.out b/test/out/math/matrix-00.out
--- a/test/out/math/matrix-00.out
+++ b/test/out/math/matrix-00.out
@@ -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() })
diff --git a/test/out/math/matrix-01.out b/test/out/math/matrix-01.out
--- a/test/out/math/matrix-01.out
+++ b/test/out/math/matrix-01.out
@@ -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() })
diff --git a/test/out/math/matrix-02.out b/test/out/math/matrix-02.out
--- a/test/out/math/matrix-02.out
+++ b/test/out/math/matrix-02.out
@@ -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() })
diff --git a/test/out/math/matrix-03.out b/test/out/math/matrix-03.out
--- a/test/out/math/matrix-03.out
+++ b/test/out/math/matrix-03.out
@@ -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() })
diff --git a/test/out/math/matrix-04.out b/test/out/math/matrix-04.out
--- a/test/out/math/matrix-04.out
+++ b/test/out/math/matrix-04.out
@@ -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() })
diff --git a/test/out/math/matrix-alignment-00.out b/test/out/math/matrix-alignment-00.out
--- a/test/out/math/matrix-alignment-00.out
+++ b/test/out/math/matrix-alignment-00.out
@@ -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() })
diff --git a/test/out/math/matrix-alignment-01.out b/test/out/math/matrix-alignment-01.out
--- a/test/out/math/matrix-alignment-01.out
+++ b/test/out/math/matrix-alignment-01.out
@@ -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() })
diff --git a/test/out/math/matrix-alignment-02.out b/test/out/math/matrix-alignment-02.out
--- a/test/out/math/matrix-alignment-02.out
+++ b/test/out/math/matrix-alignment-02.out
@@ -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() })
diff --git a/test/out/math/matrix-alignment-03.out b/test/out/math/matrix-alignment-03.out
--- a/test/out/math/matrix-alignment-03.out
+++ b/test/out/math/matrix-alignment-03.out
@@ -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() })
diff --git a/test/out/math/matrix-alignment-04.out b/test/out/math/matrix-alignment-04.out
--- a/test/out/math/matrix-alignment-04.out
+++ b/test/out/math/matrix-alignment-04.out
@@ -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() })
diff --git a/test/out/math/matrix-alignment-05.out b/test/out/math/matrix-alignment-05.out
--- a/test/out/math/matrix-alignment-05.out
+++ b/test/out/math/matrix-alignment-05.out
@@ -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() })
diff --git a/test/out/math/matrix-alignment-06.out b/test/out/math/matrix-alignment-06.out
--- a/test/out/math/matrix-alignment-06.out
+++ b/test/out/math/matrix-alignment-06.out
@@ -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() })
diff --git a/test/out/math/multiline-00.out b/test/out/math/multiline-00.out
--- a/test/out/math/multiline-00.out
+++ b/test/out/math/multiline-00.out
@@ -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() })
diff --git a/test/out/math/multiline-01.out b/test/out/math/multiline-01.out
--- a/test/out/math/multiline-01.out
+++ b/test/out/math/multiline-01.out
@@ -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() })
diff --git a/test/out/math/multiline-02.out b/test/out/math/multiline-02.out
--- a/test/out/math/multiline-02.out
+++ b/test/out/math/multiline-02.out
@@ -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() })
diff --git a/test/out/math/multiline-03.out b/test/out/math/multiline-03.out
--- a/test/out/math/multiline-03.out
+++ b/test/out/math/multiline-03.out
@@ -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() })
diff --git a/test/out/math/multiline-04.out b/test/out/math/multiline-04.out
--- a/test/out/math/multiline-04.out
+++ b/test/out/math/multiline-04.out
@@ -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() })
diff --git a/test/out/math/multiline-05.out b/test/out/math/multiline-05.out
--- a/test/out/math/multiline-05.out
+++ b/test/out/math/multiline-05.out
@@ -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() })
diff --git a/test/out/math/multiline-06.out b/test/out/math/multiline-06.out
--- a/test/out/math/multiline-06.out
+++ b/test/out/math/multiline-06.out
@@ -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() })
diff --git a/test/out/math/multiline-07.out b/test/out/math/multiline-07.out
--- a/test/out/math/multiline-07.out
+++ b/test/out/math/multiline-07.out
@@ -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() })
diff --git a/test/out/math/multiline-08.out b/test/out/math/multiline-08.out
--- a/test/out/math/multiline-08.out
+++ b/test/out/math/multiline-08.out
@@ -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() })
diff --git a/test/out/math/numbering-00.out b/test/out/math/numbering-00.out
--- a/test/out/math/numbering-00.out
+++ b/test/out/math/numbering-00.out
@@ -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() })
diff --git a/test/out/math/op-00.out b/test/out/math/op-00.out
--- a/test/out/math/op-00.out
+++ b/test/out/math/op-00.out
@@ -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() })
diff --git a/test/out/math/op-01.out b/test/out/math/op-01.out
--- a/test/out/math/op-01.out
+++ b/test/out/math/op-01.out
@@ -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() })
diff --git a/test/out/math/op-02.out b/test/out/math/op-02.out
--- a/test/out/math/op-02.out
+++ b/test/out/math/op-02.out
@@ -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() })
diff --git a/test/out/math/op-03.out b/test/out/math/op-03.out
--- a/test/out/math/op-03.out
+++ b/test/out/math/op-03.out
@@ -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() })
diff --git a/test/out/math/op-04.out b/test/out/math/op-04.out
--- a/test/out/math/op-04.out
+++ b/test/out/math/op-04.out
@@ -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() })
diff --git a/test/out/math/root-00.out b/test/out/math/root-00.out
--- a/test/out/math/root-00.out
+++ b/test/out/math/root-00.out
@@ -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() })
diff --git a/test/out/math/root-01.out b/test/out/math/root-01.out
--- a/test/out/math/root-01.out
+++ b/test/out/math/root-01.out
@@ -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() })
diff --git a/test/out/math/root-02.out b/test/out/math/root-02.out
--- a/test/out/math/root-02.out
+++ b/test/out/math/root-02.out
@@ -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() })
diff --git a/test/out/math/root-03.out b/test/out/math/root-03.out
--- a/test/out/math/root-03.out
+++ b/test/out/math/root-03.out
@@ -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() })
diff --git a/test/out/math/root-04.out b/test/out/math/root-04.out
--- a/test/out/math/root-04.out
+++ b/test/out/math/root-04.out
@@ -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() })
diff --git a/test/out/math/root-05.out b/test/out/math/root-05.out
--- a/test/out/math/root-05.out
+++ b/test/out/math/root-05.out
@@ -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() })
diff --git a/test/out/math/spacing-00.out b/test/out/math/spacing-00.out
--- a/test/out/math/spacing-00.out
+++ b/test/out/math/spacing-00.out
@@ -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() })
diff --git a/test/out/math/spacing-01.out b/test/out/math/spacing-01.out
--- a/test/out/math/spacing-01.out
+++ b/test/out/math/spacing-01.out
@@ -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() })
diff --git a/test/out/math/spacing-02.out b/test/out/math/spacing-02.out
--- a/test/out/math/spacing-02.out
+++ b/test/out/math/spacing-02.out
@@ -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() })
diff --git a/test/out/math/spacing-03.out b/test/out/math/spacing-03.out
--- a/test/out/math/spacing-03.out
+++ b/test/out/math/spacing-03.out
@@ -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() })
diff --git a/test/out/math/spacing-04.out b/test/out/math/spacing-04.out
--- a/test/out/math/spacing-04.out
+++ b/test/out/math/spacing-04.out
@@ -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() })
diff --git a/test/out/math/style-00.out b/test/out/math/style-00.out
--- a/test/out/math/style-00.out
+++ b/test/out/math/style-00.out
@@ -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() })
diff --git a/test/out/math/style-01.out b/test/out/math/style-01.out
--- a/test/out/math/style-01.out
+++ b/test/out/math/style-01.out
@@ -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() })
diff --git a/test/out/math/style-02.out b/test/out/math/style-02.out
--- a/test/out/math/style-02.out
+++ b/test/out/math/style-02.out
@@ -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() })
diff --git a/test/out/math/style-03.out b/test/out/math/style-03.out
--- a/test/out/math/style-03.out
+++ b/test/out/math/style-03.out
@@ -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() })
diff --git a/test/out/math/style-04.out b/test/out/math/style-04.out
--- a/test/out/math/style-04.out
+++ b/test/out/math/style-04.out
@@ -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() })
diff --git a/test/out/math/style-05.out b/test/out/math/style-05.out
--- a/test/out/math/style-05.out
+++ b/test/out/math/style-05.out
@@ -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() })
diff --git a/test/out/math/style-06.out b/test/out/math/style-06.out
--- a/test/out/math/style-06.out
+++ b/test/out/math/style-06.out
@@ -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() })
diff --git a/test/out/math/syntax-00.out b/test/out/math/syntax-00.out
--- a/test/out/math/syntax-00.out
+++ b/test/out/math/syntax-00.out
@@ -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() })
diff --git a/test/out/math/syntax-01.out b/test/out/math/syntax-01.out
--- a/test/out/math/syntax-01.out
+++ b/test/out/math/syntax-01.out
@@ -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() })
diff --git a/test/out/math/syntax-02.out b/test/out/math/syntax-02.out
--- a/test/out/math/syntax-02.out
+++ b/test/out/math/syntax-02.out
@@ -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() })
diff --git a/test/out/math/unbalanced-00.out b/test/out/math/unbalanced-00.out
--- a/test/out/math/unbalanced-00.out
+++ b/test/out/math/unbalanced-00.out
@@ -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() })
diff --git a/test/out/math/underover-00.out b/test/out/math/underover-00.out
--- a/test/out/math/underover-00.out
+++ b/test/out/math/underover-00.out
@@ -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() })
diff --git a/test/out/math/underover-01.out b/test/out/math/underover-01.out
--- a/test/out/math/underover-01.out
+++ b/test/out/math/underover-01.out
@@ -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() })
diff --git a/test/out/math/underover-02.out b/test/out/math/underover-02.out
--- a/test/out/math/underover-02.out
+++ b/test/out/math/underover-02.out
@@ -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() })
diff --git a/test/out/math/vec-00.out b/test/out/math/vec-00.out
--- a/test/out/math/vec-00.out
+++ b/test/out/math/vec-00.out
@@ -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() })
diff --git a/test/out/math/vec-01.out b/test/out/math/vec-01.out
--- a/test/out/math/vec-01.out
+++ b/test/out/math/vec-01.out
@@ -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() })
diff --git a/test/out/meta/bibliography-01.out b/test/out/meta/bibliography-01.out
--- a/test/out/meta/bibliography-01.out
+++ b/test/out/meta/bibliography-01.out
@@ -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() })
diff --git a/test/out/meta/bibliography-02.out b/test/out/meta/bibliography-02.out
--- a/test/out/meta/bibliography-02.out
+++ b/test/out/meta/bibliography-02.out
@@ -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() })
diff --git a/test/out/meta/bibliography-04.out b/test/out/meta/bibliography-04.out
--- a/test/out/meta/bibliography-04.out
+++ b/test/out/meta/bibliography-04.out
@@ -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() })
diff --git a/test/out/meta/bibliography-ordering-00.out b/test/out/meta/bibliography-ordering-00.out
--- a/test/out/meta/bibliography-ordering-00.out
+++ b/test/out/meta/bibliography-ordering-00.out
@@ -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() })
diff --git a/test/out/meta/cite-footnote-00.out b/test/out/meta/cite-footnote-00.out
--- a/test/out/meta/cite-footnote-00.out
+++ b/test/out/meta/cite-footnote-00.out
@@ -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() })
diff --git a/test/out/meta/counter-00.out b/test/out/meta/counter-00.out
--- a/test/out/meta/counter-00.out
+++ b/test/out/meta/counter-00.out
@@ -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() })
diff --git a/test/out/meta/counter-01.out b/test/out/meta/counter-01.out
--- a/test/out/meta/counter-01.out
+++ b/test/out/meta/counter-01.out
@@ -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() })
diff --git a/test/out/meta/counter-02.out b/test/out/meta/counter-02.out
--- a/test/out/meta/counter-02.out
+++ b/test/out/meta/counter-02.out
@@ -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() })
diff --git a/test/out/meta/counter-03.out b/test/out/meta/counter-03.out
--- a/test/out/meta/counter-03.out
+++ b/test/out/meta/counter-03.out
@@ -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() })
diff --git a/test/out/meta/counter-page-00.out b/test/out/meta/counter-page-00.out
--- a/test/out/meta/counter-page-00.out
+++ b/test/out/meta/counter-page-00.out
@@ -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() })
diff --git a/test/out/meta/document-00.out b/test/out/meta/document-00.out
--- a/test/out/meta/document-00.out
+++ b/test/out/meta/document-00.out
@@ -55,8 +55,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 What’s up?]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/meta/document-01.out b/test/out/meta/document-01.out
--- a/test/out/meta/document-01.out
+++ b/test/out/meta/document-01.out
@@ -53,6 +53,6 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  parbreak() }
+                 parbreak() })
diff --git a/test/out/meta/figure-00.out b/test/out/meta/figure-00.out
--- a/test/out/meta/figure-00.out
+++ b/test/out/meta/figure-00.out
@@ -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() })
diff --git a/test/out/meta/figure-01.out b/test/out/meta/figure-01.out
--- a/test/out/meta/figure-01.out
+++ b/test/out/meta/figure-01.out
@@ -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() })
diff --git a/test/out/meta/figure-03.out b/test/out/meta/figure-03.out
--- a/test/out/meta/figure-03.out
+++ b/test/out/meta/figure-03.out
@@ -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() })
diff --git a/test/out/meta/footnote-00.out b/test/out/meta/footnote-00.out
--- a/test/out/meta/footnote-00.out
+++ b/test/out/meta/footnote-00.out
@@ -47,7 +47,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  footnote(body: text(body: [Hi])), 
-  parbreak() }
+                 footnote(body: text(body: [Hi])), 
+                 parbreak() })
diff --git a/test/out/meta/footnote-01.out b/test/out/meta/footnote-01.out
--- a/test/out/meta/footnote-01.out
+++ b/test/out/meta/footnote-01.out
@@ -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() })
diff --git a/test/out/meta/footnote-02.out b/test/out/meta/footnote-02.out
--- a/test/out/meta/footnote-02.out
+++ b/test/out/meta/footnote-02.out
@@ -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() })
diff --git a/test/out/meta/footnote-03.out b/test/out/meta/footnote-03.out
--- a/test/out/meta/footnote-03.out
+++ b/test/out/meta/footnote-03.out
@@ -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() })
diff --git a/test/out/meta/footnote-04.out b/test/out/meta/footnote-04.out
--- a/test/out/meta/footnote-04.out
+++ b/test/out/meta/footnote-04.out
@@ -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() })
diff --git a/test/out/meta/footnote-break-00.out b/test/out/meta/footnote-break-00.out
--- a/test/out/meta/footnote-break-00.out
+++ b/test/out/meta/footnote-break-00.out
@@ -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: [ ]) })
diff --git a/test/out/meta/footnote-container-00.out b/test/out/meta/footnote-container-00.out
--- a/test/out/meta/footnote-container-00.out
+++ b/test/out/meta/footnote-container-00.out
@@ -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() })
diff --git a/test/out/meta/footnote-container-01.out b/test/out/meta/footnote-container-01.out
--- a/test/out/meta/footnote-container-01.out
+++ b/test/out/meta/footnote-container-01.out
@@ -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() })
diff --git a/test/out/meta/footnote-invariant-00.out b/test/out/meta/footnote-invariant-00.out
--- a/test/out/meta/footnote-invariant-00.out
+++ b/test/out/meta/footnote-invariant-00.out
@@ -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() })
diff --git a/test/out/meta/heading-00.out b/test/out/meta/heading-00.out
--- a/test/out/meta/heading-00.out
+++ b/test/out/meta/heading-00.out
@@ -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) })
diff --git a/test/out/meta/heading-01.out b/test/out/meta/heading-01.out
--- a/test/out/meta/heading-01.out
+++ b/test/out/meta/heading-01.out
@@ -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() })
diff --git a/test/out/meta/heading-02.out b/test/out/meta/heading-02.out
--- a/test/out/meta/heading-02.out
+++ b/test/out/meta/heading-02.out
@@ -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() })
diff --git a/test/out/meta/heading-03.out b/test/out/meta/heading-03.out
--- a/test/out/meta/heading-03.out
+++ b/test/out/meta/heading-03.out
@@ -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() })
diff --git a/test/out/meta/heading-04.out b/test/out/meta/heading-04.out
--- a/test/out/meta/heading-04.out
+++ b/test/out/meta/heading-04.out
@@ -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() })
diff --git a/test/out/meta/link-00.out b/test/out/meta/link-00.out
--- a/test/out/meta/link-00.out
+++ b/test/out/meta/link-00.out
@@ -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() })
diff --git a/test/out/meta/link-01.out b/test/out/meta/link-01.out
--- a/test/out/meta/link-01.out
+++ b/test/out/meta/link-01.out
@@ -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() })
diff --git a/test/out/meta/link-02.out b/test/out/meta/link-02.out
--- a/test/out/meta/link-02.out
+++ b/test/out/meta/link-02.out
@@ -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() })
diff --git a/test/out/meta/link-03.out b/test/out/meta/link-03.out
--- a/test/out/meta/link-03.out
+++ b/test/out/meta/link-03.out
@@ -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() })
diff --git a/test/out/meta/link-05.out b/test/out/meta/link-05.out
--- a/test/out/meta/link-05.out
+++ b/test/out/meta/link-05.out
@@ -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() })
diff --git a/test/out/meta/link-06.out b/test/out/meta/link-06.out
--- a/test/out/meta/link-06.out
+++ b/test/out/meta/link-06.out
@@ -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() })
diff --git a/test/out/meta/link-07.out b/test/out/meta/link-07.out
--- a/test/out/meta/link-07.out
+++ b/test/out/meta/link-07.out
@@ -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() })
diff --git a/test/out/meta/link-08.out b/test/out/meta/link-08.out
--- a/test/out/meta/link-08.out
+++ b/test/out/meta/link-08.out
@@ -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() })
diff --git a/test/out/meta/link-09.out b/test/out/meta/link-09.out
--- a/test/out/meta/link-09.out
+++ b/test/out/meta/link-09.out
@@ -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() })
diff --git a/test/out/meta/numbering-00.out b/test/out/meta/numbering-00.out
--- a/test/out/meta/numbering-00.out
+++ b/test/out/meta/numbering-00.out
@@ -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() })
diff --git a/test/out/meta/numbering-01.out b/test/out/meta/numbering-01.out
--- a/test/out/meta/numbering-01.out
+++ b/test/out/meta/numbering-01.out
@@ -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() })
diff --git a/test/out/meta/numbering-02.out b/test/out/meta/numbering-02.out
--- a/test/out/meta/numbering-02.out
+++ b/test/out/meta/numbering-02.out
@@ -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() })
diff --git a/test/out/meta/numbering-03.out b/test/out/meta/numbering-03.out
--- a/test/out/meta/numbering-03.out
+++ b/test/out/meta/numbering-03.out
@@ -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() })
diff --git a/test/out/meta/numbering-04.out b/test/out/meta/numbering-04.out
--- a/test/out/meta/numbering-04.out
+++ b/test/out/meta/numbering-04.out
@@ -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() })
diff --git a/test/out/meta/outline-00.out b/test/out/meta/outline-00.out
--- a/test/out/meta/outline-00.out
+++ b/test/out/meta/outline-00.out
@@ -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() })
diff --git a/test/out/meta/query-before-after-01.out b/test/out/meta/query-before-after-01.out
--- a/test/out/meta/query-before-after-01.out
+++ b/test/out/meta/query-before-after-01.out
@@ -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() })
diff --git a/test/out/meta/query-figure-00.out b/test/out/meta/query-figure-00.out
--- a/test/out/meta/query-figure-00.out
+++ b/test/out/meta/query-figure-00.out
@@ -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() })
diff --git a/test/out/meta/query-header-00.out b/test/out/meta/query-header-00.out
--- a/test/out/meta/query-header-00.out
+++ b/test/out/meta/query-header-00.out
@@ -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() })
diff --git a/test/out/meta/ref-00.out b/test/out/meta/ref-00.out
--- a/test/out/meta/ref-00.out
+++ b/test/out/meta/ref-00.out
@@ -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() })
diff --git a/test/out/regression/issue1.out b/test/out/regression/issue1.out
--- a/test/out/regression/issue1.out
+++ b/test/out/regression/issue1.out
@@ -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() })
diff --git a/test/out/regression/issue12.out b/test/out/regression/issue12.out
--- a/test/out/regression/issue12.out
+++ b/test/out/regression/issue12.out
@@ -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() })
diff --git a/test/out/regression/issue15.out b/test/out/regression/issue15.out
--- a/test/out/regression/issue15.out
+++ b/test/out/regression/issue15.out
@@ -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() })
diff --git a/test/out/regression/issue17.out b/test/out/regression/issue17.out
new file mode 100644
--- /dev/null
+++ b/test/out/regression/issue17.out
@@ -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() })
diff --git a/test/out/regression/issue2.out b/test/out/regression/issue2.out
--- a/test/out/regression/issue2.out
+++ b/test/out/regression/issue2.out
@@ -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() })
diff --git a/test/out/regression/issue3.out b/test/out/regression/issue3.out
--- a/test/out/regression/issue3.out
+++ b/test/out/regression/issue3.out
@@ -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() })
diff --git a/test/out/regression/issue5.out b/test/out/regression/issue5.out
--- a/test/out/regression/issue5.out
+++ b/test/out/regression/issue5.out
@@ -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() })
diff --git a/test/out/regression/issue6.out b/test/out/regression/issue6.out
--- a/test/out/regression/issue6.out
+++ b/test/out/regression/issue6.out
@@ -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() })
diff --git a/test/out/text/baseline-00.out b/test/out/text/baseline-00.out
--- a/test/out/text/baseline-00.out
+++ b/test/out/text/baseline-00.out
@@ -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() })
diff --git a/test/out/text/case-00.out b/test/out/text/case-00.out
--- a/test/out/text/case-00.out
+++ b/test/out/text/case-00.out
@@ -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() })
diff --git a/test/out/text/chinese-00.out b/test/out/text/chinese-00.out
--- a/test/out/text/chinese-00.out
+++ b/test/out/text/chinese-00.out
@@ -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() })
diff --git a/test/out/text/copy-paste-00.out b/test/out/text/copy-paste-00.out
--- a/test/out/text/copy-paste-00.out
+++ b/test/out/text/copy-paste-00.out
@@ -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() })
diff --git a/test/out/text/deco-00.out b/test/out/text/deco-00.out
--- a/test/out/text/deco-00.out
+++ b/test/out/text/deco-00.out
@@ -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() })
diff --git a/test/out/text/deco-01.out b/test/out/text/deco-01.out
--- a/test/out/text/deco-01.out
+++ b/test/out/text/deco-01.out
@@ -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() })
diff --git a/test/out/text/deco-02.out b/test/out/text/deco-02.out
--- a/test/out/text/deco-02.out
+++ b/test/out/text/deco-02.out
@@ -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() })
diff --git a/test/out/text/edge-00.out b/test/out/text/edge-00.out
--- a/test/out/text/edge-00.out
+++ b/test/out/text/edge-00.out
@@ -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() })
diff --git a/test/out/text/em-00.out b/test/out/text/em-00.out
--- a/test/out/text/em-00.out
+++ b/test/out/text/em-00.out
@@ -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() })
diff --git a/test/out/text/em-01.out b/test/out/text/em-01.out
--- a/test/out/text/em-01.out
+++ b/test/out/text/em-01.out
@@ -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() })
diff --git a/test/out/text/emoji-00.out b/test/out/text/emoji-00.out
--- a/test/out/text/emoji-00.out
+++ b/test/out/text/emoji-00.out
@@ -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() })
diff --git a/test/out/text/emoji-01.out b/test/out/text/emoji-01.out
--- a/test/out/text/emoji-01.out
+++ b/test/out/text/emoji-01.out
@@ -44,7 +44,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [🏞‍🌋]), 
-  parbreak() }
+                 text(body: [🏞‍🌋]), 
+                 parbreak() })
diff --git a/test/out/text/emphasis-00.out b/test/out/text/emphasis-00.out
--- a/test/out/text/emphasis-00.out
+++ b/test/out/text/emphasis-00.out
@@ -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() })
diff --git a/test/out/text/emphasis-01.out b/test/out/text/emphasis-01.out
--- a/test/out/text/emphasis-01.out
+++ b/test/out/text/emphasis-01.out
@@ -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() })
diff --git a/test/out/text/emphasis-02.out b/test/out/text/emphasis-02.out
--- a/test/out/text/emphasis-02.out
+++ b/test/out/text/emphasis-02.out
@@ -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() })
diff --git a/test/out/text/escape-00.out b/test/out/text/escape-00.out
--- a/test/out/text/escape-00.out
+++ b/test/out/text/escape-00.out
@@ -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() })
diff --git a/test/out/text/fallback-00.out b/test/out/text/fallback-00.out
--- a/test/out/text/fallback-00.out
+++ b/test/out/text/fallback-00.out
@@ -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() })
diff --git a/test/out/text/features-00.out b/test/out/text/features-00.out
--- a/test/out/text/features-00.out
+++ b/test/out/text/features-00.out
@@ -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() })
diff --git a/test/out/text/features-01.out b/test/out/text/features-01.out
--- a/test/out/text/features-01.out
+++ b/test/out/text/features-01.out
@@ -48,7 +48,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  smallcaps(body: text(body: [Smallcaps])), 
-  parbreak() }
+                 smallcaps(body: text(body: [Smallcaps])), 
+                 parbreak() })
diff --git a/test/out/text/features-02.out b/test/out/text/features-02.out
--- a/test/out/text/features-02.out
+++ b/test/out/text/features-02.out
@@ -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() })
diff --git a/test/out/text/features-03.out b/test/out/text/features-03.out
--- a/test/out/text/features-03.out
+++ b/test/out/text/features-03.out
@@ -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() })
diff --git a/test/out/text/features-04.out b/test/out/text/features-04.out
--- a/test/out/text/features-04.out
+++ b/test/out/text/features-04.out
@@ -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() })
diff --git a/test/out/text/features-05.out b/test/out/text/features-05.out
--- a/test/out/text/features-05.out
+++ b/test/out/text/features-05.out
@@ -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() })
diff --git a/test/out/text/features-06.out b/test/out/text/features-06.out
--- a/test/out/text/features-06.out
+++ b/test/out/text/features-06.out
@@ -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() })
diff --git a/test/out/text/features-07.out b/test/out/text/features-07.out
--- a/test/out/text/features-07.out
+++ b/test/out/text/features-07.out
@@ -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() })
diff --git a/test/out/text/font-00.out b/test/out/text/font-00.out
--- a/test/out/text/font-00.out
+++ b/test/out/text/font-00.out
@@ -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() })
diff --git a/test/out/text/font-01.out b/test/out/text/font-01.out
--- a/test/out/text/font-01.out
+++ b/test/out/text/font-01.out
@@ -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() })
diff --git a/test/out/text/hyphenate-00.out b/test/out/text/hyphenate-00.out
--- a/test/out/text/hyphenate-00.out
+++ b/test/out/text/hyphenate-00.out
@@ -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() })
diff --git a/test/out/text/hyphenate-01.out b/test/out/text/hyphenate-01.out
--- a/test/out/text/hyphenate-01.out
+++ b/test/out/text/hyphenate-01.out
@@ -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() })
diff --git a/test/out/text/hyphenate-02.out b/test/out/text/hyphenate-02.out
--- a/test/out/text/hyphenate-02.out
+++ b/test/out/text/hyphenate-02.out
@@ -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() })
diff --git a/test/out/text/hyphenate-03.out b/test/out/text/hyphenate-03.out
--- a/test/out/text/hyphenate-03.out
+++ b/test/out/text/hyphenate-03.out
@@ -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() })
diff --git a/test/out/text/hyphenate-04.out b/test/out/text/hyphenate-04.out
--- a/test/out/text/hyphenate-04.out
+++ b/test/out/text/hyphenate-04.out
@@ -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() })
diff --git a/test/out/text/lang-00.out b/test/out/text/lang-00.out
--- a/test/out/text/lang-00.out
+++ b/test/out/text/lang-00.out
@@ -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() })
diff --git a/test/out/text/lang-01.out b/test/out/text/lang-01.out
--- a/test/out/text/lang-01.out
+++ b/test/out/text/lang-01.out
@@ -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() })
diff --git a/test/out/text/lang-with-region-00.out b/test/out/text/lang-with-region-00.out
--- a/test/out/text/lang-with-region-00.out
+++ b/test/out/text/lang-with-region-00.out
@@ -54,9 +54,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 ], lang: "zh"), 
-  outline(), 
-  parbreak() }
+                 outline(), 
+                 parbreak() })
diff --git a/test/out/text/lang-with-region-01.out b/test/out/text/lang-with-region-01.out
--- a/test/out/text/lang-with-region-01.out
+++ b/test/out/text/lang-with-region-01.out
@@ -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() })
diff --git a/test/out/text/lang-with-region-02.out b/test/out/text/lang-with-region-02.out
--- a/test/out/text/lang-with-region-02.out
+++ b/test/out/text/lang-with-region-02.out
@@ -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() })
diff --git a/test/out/text/linebreak-00.out b/test/out/text/linebreak-00.out
--- a/test/out/text/linebreak-00.out
+++ b/test/out/text/linebreak-00.out
@@ -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() })
diff --git a/test/out/text/linebreak-01.out b/test/out/text/linebreak-01.out
--- a/test/out/text/linebreak-01.out
+++ b/test/out/text/linebreak-01.out
@@ -47,7 +47,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [Supercalifragilisticexpialidocious Expialigoricmetrioxidation.]), 
-  parbreak() }
+                 text(body: [Supercalifragilisticexpialidocious Expialigoricmetrioxidation.]), 
+                 parbreak() })
diff --git a/test/out/text/linebreak-02.out b/test/out/text/linebreak-02.out
--- a/test/out/text/linebreak-02.out
+++ b/test/out/text/linebreak-02.out
@@ -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() })
diff --git a/test/out/text/linebreak-03.out b/test/out/text/linebreak-03.out
--- a/test/out/text/linebreak-03.out
+++ b/test/out/text/linebreak-03.out
@@ -51,8 +51,8 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 Hard ]), 
-  linebreak(), 
-  text(body: [ break.]), 
-  parbreak() }
+                 linebreak(), 
+                 text(body: [ break.]), 
+                 parbreak() })
diff --git a/test/out/text/linebreak-04.out b/test/out/text/linebreak-04.out
--- a/test/out/text/linebreak-04.out
+++ b/test/out/text/linebreak-04.out
@@ -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() })
diff --git a/test/out/text/linebreak-05.out b/test/out/text/linebreak-05.out
--- a/test/out/text/linebreak-05.out
+++ b/test/out/text/linebreak-05.out
@@ -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() })
diff --git a/test/out/text/linebreak-06.out b/test/out/text/linebreak-06.out
--- a/test/out/text/linebreak-06.out
+++ b/test/out/text/linebreak-06.out
@@ -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() })
diff --git a/test/out/text/linebreak-07.out b/test/out/text/linebreak-07.out
--- a/test/out/text/linebreak-07.out
+++ b/test/out/text/linebreak-07.out
@@ -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() })
diff --git a/test/out/text/linebreak-08.out b/test/out/text/linebreak-08.out
--- a/test/out/text/linebreak-08.out
+++ b/test/out/text/linebreak-08.out
@@ -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() })
diff --git a/test/out/text/linebreak-obj-00.out b/test/out/text/linebreak-obj-00.out
--- a/test/out/text/linebreak-obj-00.out
+++ b/test/out/text/linebreak-obj-00.out
@@ -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() })
diff --git a/test/out/text/linebreak-obj-01.out b/test/out/text/linebreak-obj-01.out
--- a/test/out/text/linebreak-obj-01.out
+++ b/test/out/text/linebreak-obj-01.out
@@ -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() })
diff --git a/test/out/text/lorem-00.out b/test/out/text/lorem-00.out
--- a/test/out/text/lorem-00.out
+++ b/test/out/text/lorem-00.out
@@ -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() })
diff --git a/test/out/text/lorem-01.out b/test/out/text/lorem-01.out
--- a/test/out/text/lorem-01.out
+++ b/test/out/text/lorem-01.out
@@ -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() })
diff --git a/test/out/text/microtype-00.out b/test/out/text/microtype-00.out
--- a/test/out/text/microtype-00.out
+++ b/test/out/text/microtype-00.out
@@ -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() })
diff --git a/test/out/text/microtype-01.out b/test/out/text/microtype-01.out
--- a/test/out/text/microtype-01.out
+++ b/test/out/text/microtype-01.out
@@ -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() })
diff --git a/test/out/text/quotes-00.out b/test/out/text/quotes-00.out
--- a/test/out/text/quotes-00.out
+++ b/test/out/text/quotes-00.out
@@ -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() })
diff --git a/test/out/text/quotes-01.out b/test/out/text/quotes-01.out
--- a/test/out/text/quotes-01.out
+++ b/test/out/text/quotes-01.out
@@ -45,7 +45,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [””]), 
-  parbreak() }
+                 text(body: [””]), 
+                 parbreak() })
diff --git a/test/out/text/quotes-02.out b/test/out/text/quotes-02.out
--- a/test/out/text/quotes-02.out
+++ b/test/out/text/quotes-02.out
@@ -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() })
diff --git a/test/out/text/quotes-03.out b/test/out/text/quotes-03.out
--- a/test/out/text/quotes-03.out
+++ b/test/out/text/quotes-03.out
@@ -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() })
diff --git a/test/out/text/quotes-04.out b/test/out/text/quotes-04.out
--- a/test/out/text/quotes-04.out
+++ b/test/out/text/quotes-04.out
@@ -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() })
diff --git a/test/out/text/quotes-05.out b/test/out/text/quotes-05.out
--- a/test/out/text/quotes-05.out
+++ b/test/out/text/quotes-05.out
@@ -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() })
diff --git a/test/out/text/raw-00.out b/test/out/text/raw-00.out
--- a/test/out/text/raw-00.out
+++ b/test/out/text/raw-00.out
@@ -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() })
diff --git a/test/out/text/raw-01.out b/test/out/text/raw-01.out
--- a/test/out/text/raw-01.out
+++ b/test/out/text/raw-01.out
@@ -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() })
diff --git a/test/out/text/raw-02.out b/test/out/text/raw-02.out
--- a/test/out/text/raw-02.out
+++ b/test/out/text/raw-02.out
@@ -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() })
diff --git a/test/out/text/raw-03.out b/test/out/text/raw-03.out
--- a/test/out/text/raw-03.out
+++ b/test/out/text/raw-03.out
@@ -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() })
diff --git a/test/out/text/raw-04.out b/test/out/text/raw-04.out
--- a/test/out/text/raw-04.out
+++ b/test/out/text/raw-04.out
@@ -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() })
diff --git a/test/out/text/raw-05.out b/test/out/text/raw-05.out
--- a/test/out/text/raw-05.out
+++ b/test/out/text/raw-05.out
@@ -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() })
diff --git a/test/out/text/raw-06.out b/test/out/text/raw-06.out
--- a/test/out/text/raw-06.out
+++ b/test/out/text/raw-06.out
@@ -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() })
diff --git a/test/out/text/raw-07.out b/test/out/text/raw-07.out
--- a/test/out/text/raw-07.out
+++ b/test/out/text/raw-07.out
@@ -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() })
diff --git a/test/out/text/raw-align-00.out b/test/out/text/raw-align-00.out
--- a/test/out/text/raw-align-00.out
+++ b/test/out/text/raw-align-00.out
@@ -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() })
diff --git a/test/out/text/raw-align-01.out b/test/out/text/raw-align-01.out
--- a/test/out/text/raw-align-01.out
+++ b/test/out/text/raw-align-01.out
@@ -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() })
diff --git a/test/out/text/raw-code-00.out b/test/out/text/raw-code-00.out
--- a/test/out/text/raw-code-00.out
+++ b/test/out/text/raw-code-00.out
@@ -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() })
diff --git a/test/out/text/raw-code-01.out b/test/out/text/raw-code-01.out
--- a/test/out/text/raw-code-01.out
+++ b/test/out/text/raw-code-01.out
@@ -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() })
diff --git a/test/out/text/raw-code-02.out b/test/out/text/raw-code-02.out
--- a/test/out/text/raw-code-02.out
+++ b/test/out/text/raw-code-02.out
@@ -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() })
diff --git a/test/out/text/raw-code-03.out b/test/out/text/raw-code-03.out
--- a/test/out/text/raw-code-03.out
+++ b/test/out/text/raw-code-03.out
@@ -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() })
diff --git a/test/out/text/raw-code-04.out b/test/out/text/raw-code-04.out
--- a/test/out/text/raw-code-04.out
+++ b/test/out/text/raw-code-04.out
@@ -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() })
diff --git a/test/out/text/shaping-00.out b/test/out/text/shaping-00.out
--- a/test/out/text/shaping-00.out
+++ b/test/out/text/shaping-00.out
@@ -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() })
diff --git a/test/out/text/shaping-01.out b/test/out/text/shaping-01.out
--- a/test/out/text/shaping-01.out
+++ b/test/out/text/shaping-01.out
@@ -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() })
diff --git a/test/out/text/shift-00.out b/test/out/text/shift-00.out
--- a/test/out/text/shift-00.out
+++ b/test/out/text/shift-00.out
@@ -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() })
diff --git a/test/out/text/shift-01.out b/test/out/text/shift-01.out
--- a/test/out/text/shift-01.out
+++ b/test/out/text/shift-01.out
@@ -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() })
diff --git a/test/out/text/shift-02.out b/test/out/text/shift-02.out
--- a/test/out/text/shift-02.out
+++ b/test/out/text/shift-02.out
@@ -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() })
diff --git a/test/out/text/space-00.out b/test/out/text/space-00.out
--- a/test/out/text/space-00.out
+++ b/test/out/text/space-00.out
@@ -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() })
diff --git a/test/out/text/space-01.out b/test/out/text/space-01.out
--- a/test/out/text/space-01.out
+++ b/test/out/text/space-01.out
@@ -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() })
diff --git a/test/out/text/space-02.out b/test/out/text/space-02.out
--- a/test/out/text/space-02.out
+++ b/test/out/text/space-02.out
@@ -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() })
diff --git a/test/out/text/space-03.out b/test/out/text/space-03.out
--- a/test/out/text/space-03.out
+++ b/test/out/text/space-03.out
@@ -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() })
diff --git a/test/out/text/space-04.out b/test/out/text/space-04.out
--- a/test/out/text/space-04.out
+++ b/test/out/text/space-04.out
@@ -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() })
diff --git a/test/out/text/space-05.out b/test/out/text/space-05.out
--- a/test/out/text/space-05.out
+++ b/test/out/text/space-05.out
@@ -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() })
diff --git a/test/out/text/space-06.out b/test/out/text/space-06.out
--- a/test/out/text/space-06.out
+++ b/test/out/text/space-06.out
@@ -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() })
diff --git a/test/out/text/symbol-00.out b/test/out/text/symbol-00.out
--- a/test/out/text/symbol-00.out
+++ b/test/out/text/symbol-00.out
@@ -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() })
diff --git a/test/out/text/tracking-spacing-00.out b/test/out/text/tracking-spacing-00.out
--- a/test/out/text/tracking-spacing-00.out
+++ b/test/out/text/tracking-spacing-00.out
@@ -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() })
diff --git a/test/out/text/tracking-spacing-01.out b/test/out/text/tracking-spacing-01.out
--- a/test/out/text/tracking-spacing-01.out
+++ b/test/out/text/tracking-spacing-01.out
@@ -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() })
diff --git a/test/out/text/tracking-spacing-02.out b/test/out/text/tracking-spacing-02.out
--- a/test/out/text/tracking-spacing-02.out
+++ b/test/out/text/tracking-spacing-02.out
@@ -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() })
diff --git a/test/out/text/tracking-spacing-03.out b/test/out/text/tracking-spacing-03.out
--- a/test/out/text/tracking-spacing-03.out
+++ b/test/out/text/tracking-spacing-03.out
@@ -51,9 +51,9 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  text(body: [
+                 text(body: [
 النص], 
-       tracking: 0.3em), 
-  parbreak() }
+                      tracking: 0.3em), 
+                 parbreak() })
diff --git a/test/out/text/tracking-spacing-04.out b/test/out/text/tracking-spacing-04.out
--- a/test/out/text/tracking-spacing-04.out
+++ b/test/out/text/tracking-spacing-04.out
@@ -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() })
diff --git a/test/out/text/tracking-spacing-05.out b/test/out/text/tracking-spacing-05.out
--- a/test/out/text/tracking-spacing-05.out
+++ b/test/out/text/tracking-spacing-05.out
@@ -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() })
diff --git a/test/out/visualize/image-00.out b/test/out/visualize/image-00.out
--- a/test/out/visualize/image-00.out
+++ b/test/out/visualize/image-00.out
@@ -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() })
diff --git a/test/out/visualize/image-01.out b/test/out/visualize/image-01.out
--- a/test/out/visualize/image-01.out
+++ b/test/out/visualize/image-01.out
@@ -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() })
diff --git a/test/out/visualize/image-02.out b/test/out/visualize/image-02.out
--- a/test/out/visualize/image-02.out
+++ b/test/out/visualize/image-02.out
@@ -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() })
diff --git a/test/out/visualize/image-03.out b/test/out/visualize/image-03.out
--- a/test/out/visualize/image-03.out
+++ b/test/out/visualize/image-03.out
@@ -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() })
diff --git a/test/out/visualize/image-04.out b/test/out/visualize/image-04.out
--- a/test/out/visualize/image-04.out
+++ b/test/out/visualize/image-04.out
@@ -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() })
diff --git a/test/out/visualize/image-05.out b/test/out/visualize/image-05.out
--- a/test/out/visualize/image-05.out
+++ b/test/out/visualize/image-05.out
@@ -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() })
diff --git a/test/out/visualize/line-00.out b/test/out/visualize/line-00.out
--- a/test/out/visualize/line-00.out
+++ b/test/out/visualize/line-00.out
@@ -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() })
diff --git a/test/out/visualize/line-01.out b/test/out/visualize/line-01.out
--- a/test/out/visualize/line-01.out
+++ b/test/out/visualize/line-01.out
@@ -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() })
diff --git a/test/out/visualize/path-00.out b/test/out/visualize/path-00.out
--- a/test/out/visualize/path-00.out
+++ b/test/out/visualize/path-00.out
@@ -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() })
diff --git a/test/out/visualize/polygon-00.out b/test/out/visualize/polygon-00.out
--- a/test/out/visualize/polygon-00.out
+++ b/test/out/visualize/polygon-00.out
@@ -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() })
diff --git a/test/out/visualize/shape-aspect-00.out b/test/out/visualize/shape-aspect-00.out
--- a/test/out/visualize/shape-aspect-00.out
+++ b/test/out/visualize/shape-aspect-00.out
@@ -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() })
diff --git a/test/out/visualize/shape-aspect-01.out b/test/out/visualize/shape-aspect-01.out
--- a/test/out/visualize/shape-aspect-01.out
+++ b/test/out/visualize/shape-aspect-01.out
@@ -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() })
diff --git a/test/out/visualize/shape-aspect-02.out b/test/out/visualize/shape-aspect-02.out
--- a/test/out/visualize/shape-aspect-02.out
+++ b/test/out/visualize/shape-aspect-02.out
@@ -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() })
diff --git a/test/out/visualize/shape-aspect-03.out b/test/out/visualize/shape-aspect-03.out
--- a/test/out/visualize/shape-aspect-03.out
+++ b/test/out/visualize/shape-aspect-03.out
@@ -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() })
diff --git a/test/out/visualize/shape-aspect-04.out b/test/out/visualize/shape-aspect-04.out
--- a/test/out/visualize/shape-aspect-04.out
+++ b/test/out/visualize/shape-aspect-04.out
@@ -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() })
diff --git a/test/out/visualize/shape-aspect-05.out b/test/out/visualize/shape-aspect-05.out
--- a/test/out/visualize/shape-aspect-05.out
+++ b/test/out/visualize/shape-aspect-05.out
@@ -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() })
diff --git a/test/out/visualize/shape-circle-00.out b/test/out/visualize/shape-circle-00.out
--- a/test/out/visualize/shape-circle-00.out
+++ b/test/out/visualize/shape-circle-00.out
@@ -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() })
diff --git a/test/out/visualize/shape-circle-01.out b/test/out/visualize/shape-circle-01.out
--- a/test/out/visualize/shape-circle-01.out
+++ b/test/out/visualize/shape-circle-01.out
@@ -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() })
diff --git a/test/out/visualize/shape-circle-02.out b/test/out/visualize/shape-circle-02.out
--- a/test/out/visualize/shape-circle-02.out
+++ b/test/out/visualize/shape-circle-02.out
@@ -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() })
diff --git a/test/out/visualize/shape-circle-03.out b/test/out/visualize/shape-circle-03.out
--- a/test/out/visualize/shape-circle-03.out
+++ b/test/out/visualize/shape-circle-03.out
@@ -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) })
diff --git a/test/out/visualize/shape-ellipse-00.out b/test/out/visualize/shape-ellipse-00.out
--- a/test/out/visualize/shape-ellipse-00.out
+++ b/test/out/visualize/shape-ellipse-00.out
@@ -47,7 +47,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  ellipse(), 
-  parbreak() }
+                 ellipse(), 
+                 parbreak() })
diff --git a/test/out/visualize/shape-ellipse-01.out b/test/out/visualize/shape-ellipse-01.out
--- a/test/out/visualize/shape-ellipse-01.out
+++ b/test/out/visualize/shape-ellipse-01.out
@@ -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() })
diff --git a/test/out/visualize/shape-fill-stroke-00.out b/test/out/visualize/shape-fill-stroke-00.out
--- a/test/out/visualize/shape-fill-stroke-00.out
+++ b/test/out/visualize/shape-fill-stroke-00.out
@@ -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() })
diff --git a/test/out/visualize/shape-fill-stroke-01.out b/test/out/visualize/shape-fill-stroke-01.out
--- a/test/out/visualize/shape-fill-stroke-01.out
+++ b/test/out/visualize/shape-fill-stroke-01.out
@@ -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() })
diff --git a/test/out/visualize/shape-fill-stroke-02.out b/test/out/visualize/shape-fill-stroke-02.out
--- a/test/out/visualize/shape-fill-stroke-02.out
+++ b/test/out/visualize/shape-fill-stroke-02.out
@@ -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() })
diff --git a/test/out/visualize/shape-rect-00.out b/test/out/visualize/shape-rect-00.out
--- a/test/out/visualize/shape-rect-00.out
+++ b/test/out/visualize/shape-rect-00.out
@@ -47,7 +47,7 @@
 , ParBreak
 ]
 --- evaluated ---
-{ text(body: [
+document(body: { text(body: [
 ]), 
-  rect(), 
-  parbreak() }
+                 rect(), 
+                 parbreak() })
diff --git a/test/out/visualize/shape-rect-01.out b/test/out/visualize/shape-rect-01.out
--- a/test/out/visualize/shape-rect-01.out
+++ b/test/out/visualize/shape-rect-01.out
@@ -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() })
diff --git a/test/out/visualize/shape-rounded-00.out b/test/out/visualize/shape-rounded-00.out
--- a/test/out/visualize/shape-rounded-00.out
+++ b/test/out/visualize/shape-rounded-00.out
@@ -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() })
diff --git a/test/out/visualize/shape-square-00.out b/test/out/visualize/shape-square-00.out
--- a/test/out/visualize/shape-square-00.out
+++ b/test/out/visualize/shape-square-00.out
@@ -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() })
diff --git a/test/out/visualize/shape-square-01.out b/test/out/visualize/shape-square-01.out
--- a/test/out/visualize/shape-square-01.out
+++ b/test/out/visualize/shape-square-01.out
@@ -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() })
diff --git a/test/out/visualize/shape-square-02.out b/test/out/visualize/shape-square-02.out
--- a/test/out/visualize/shape-square-02.out
+++ b/test/out/visualize/shape-square-02.out
@@ -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() })
diff --git a/test/out/visualize/shape-square-03.out b/test/out/visualize/shape-square-03.out
--- a/test/out/visualize/shape-square-03.out
+++ b/test/out/visualize/shape-square-03.out
@@ -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() })
diff --git a/test/out/visualize/shape-square-04.out b/test/out/visualize/shape-square-04.out
--- a/test/out/visualize/shape-square-04.out
+++ b/test/out/visualize/shape-square-04.out
@@ -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() })
diff --git a/test/out/visualize/stroke-00.out b/test/out/visualize/stroke-00.out
--- a/test/out/visualize/stroke-00.out
+++ b/test/out/visualize/stroke-00.out
@@ -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() })
diff --git a/test/out/visualize/stroke-01.out b/test/out/visualize/stroke-01.out
--- a/test/out/visualize/stroke-01.out
+++ b/test/out/visualize/stroke-01.out
@@ -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() })
diff --git a/test/out/visualize/stroke-02.out b/test/out/visualize/stroke-02.out
--- a/test/out/visualize/stroke-02.out
+++ b/test/out/visualize/stroke-02.out
@@ -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() })
diff --git a/test/out/visualize/stroke-03.out b/test/out/visualize/stroke-03.out
--- a/test/out/visualize/stroke-03.out
+++ b/test/out/visualize/stroke-03.out
@@ -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() })
diff --git a/test/out/visualize/stroke-04.out b/test/out/visualize/stroke-04.out
--- a/test/out/visualize/stroke-04.out
+++ b/test/out/visualize/stroke-04.out
@@ -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() })
diff --git a/test/out/visualize/stroke-07.out b/test/out/visualize/stroke-07.out
--- a/test/out/visualize/stroke-07.out
+++ b/test/out/visualize/stroke-07.out
@@ -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() })
diff --git a/test/out/visualize/svg-text-00.out b/test/out/visualize/svg-text-00.out
--- a/test/out/visualize/svg-text-00.out
+++ b/test/out/visualize/svg-text-00.out
@@ -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() })
diff --git a/test/typ/meta/bibliography-01.typ b/test/typ/meta/bibliography-01.typ
--- a/test/typ/meta/bibliography-01.typ
+++ b/test/typ/meta/bibliography-01.typ
@@ -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")
 
diff --git a/test/typ/meta/bibliography-04.typ b/test/typ/meta/bibliography-04.typ
--- a/test/typ/meta/bibliography-04.typ
+++ b/test/typ/meta/bibliography-04.typ
@@ -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"))
diff --git a/test/typ/regression/issue17.typ b/test/typ/regression/issue17.typ
new file mode 100644
--- /dev/null
+++ b/test/typ/regression/issue17.typ
@@ -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)$
diff --git a/typst.cabal b/typst.cabal
--- a/typst.cabal
+++ b/typst.cabal
@@ -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,
