--- parse tree ---
[ Code
    "test/typ/layout/grid-3-02.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/layout/grid-3-02.typ"
                                 ( line 1 , column 47 )
                                 (FuncCall
                                    (Ident (Identifier "repr"))
                                    [ NormalArg (Ident (Identifier "x")) ])
                             , Space
                             , Text "/"
                             , Text "="
                             , Space
                             , Code
                                 "test/typ/layout/grid-3-02.typ"
                                 ( line 1 , column 59 )
                                 (FuncCall
                                    (Ident (Identifier "repr"))
                                    [ NormalArg (Ident (Identifier "y")) ])
                             , Text ")"
                             ])
                      )
                    ]
                ]))))
, SoftBreak
, Comment
, Code
    "test/typ/layout/grid-3-02.typ"
    ( line 3 , column 2 )
    (Set
       (Ident (Identifier "page"))
       [ KeyValArg (Identifier "width") (Literal (Numeric 5.0 Cm))
       , KeyValArg (Identifier "height") (Literal (Numeric 2.0 Cm))
       ])
, SoftBreak
, Code
    "test/typ/layout/grid-3-02.typ"
    ( line 4 , column 2 )
    (FuncCall
       (Ident (Identifier "grid"))
       [ KeyValArg
           (Identifier "columns")
           (Times (Literal (Int 3)) (Array [ Literal (Numeric 1.0 Fr) ]))
       , KeyValArg (Identifier "row-gutter") (Literal (Numeric 8.0 Pt))
       , KeyValArg
           (Identifier "column-gutter")
           (Array
              [ Literal (Numeric 0.0 Pt) , Literal (Numeric 10.0 Percent) ])
       , NormalArg (Block (Content [ Text "A" ]))
       , NormalArg (Block (Content [ Text "B" ]))
       , NormalArg (Block (Content [ Text "C" ]))
       , NormalArg
           (Times
              (Block (Content [ Text "Ha!" , HardBreak ])) (Literal (Int 6)))
       , NormalArg (Block (Content [ Text "rofl" ]))
       , NormalArg
           (Times
              (Block (Content [ HardBreak , Text "A" ])) (Literal (Int 3)))
       , NormalArg (Block (Content [ Text "hello" ]))
       , NormalArg (Block (Content [ Text "darkness" ]))
       , NormalArg (Block (Content [ Text "my" , Space , Text "old" ]))
       ])
, ParBreak
]
--- evaluated ---
{ 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() }