--- parse tree ---
[ Code
    "test/typ/compiler/while-01.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/compiler/while-01.typ"
                                 ( line 1 , column 47 )
                                 (FuncCall
                                    (Ident (Identifier "repr"))
                                    [ NormalArg (Ident (Identifier "x")) ])
                             , Space
                             , Text "/"
                             , Text "="
                             , Space
                             , Code
                                 "test/typ/compiler/while-01.typ"
                                 ( line 1 , column 59 )
                                 (FuncCall
                                    (Ident (Identifier "repr"))
                                    [ NormalArg (Ident (Identifier "y")) ])
                             , Text ")"
                             ])
                      )
                    ]
                ]))))
, SoftBreak
, Comment
, Comment
, SoftBreak
, Code
    "test/typ/compiler/while-01.typ"
    ( line 5 , column 2 )
    (FuncCall
       (Ident (Identifier "test"))
       [ NormalArg
           (While (Literal (Boolean False)) (Block (CodeBlock [])))
       , NormalArg (Literal None)
       ])
, ParBreak
, Code
    "test/typ/compiler/while-01.typ"
    ( line 7 , column 2 )
    (Let (BasicBind (Just (Identifier "i"))) (Literal (Int 0)))
, SoftBreak
, Code
    "test/typ/compiler/while-01.typ"
    ( line 8 , column 2 )
    (FuncCall
       (Ident (Identifier "test"))
       [ NormalArg
           (FuncCall
              (Ident (Identifier "type"))
              [ NormalArg
                  (While
                     (LessThan (Ident (Identifier "i")) (Literal (Int 1)))
                     (Block
                        (Content
                           [ Code
                               "test/typ/compiler/while-01.typ"
                               ( line 8 , column 26 )
                               (Assign
                                  (Ident (Identifier "i"))
                                  (Plus (Ident (Identifier "i")) (Literal (Int 1))))
                           ])))
              ])
       , NormalArg (Literal (String "content"))
       ])
, ParBreak
]
--- evaluated ---
{ text(body: [
]), 
  text(body: [
]), 
  text(body: [✅]), 
  parbreak(), 
  text(body: [
]), 
  text(body: [✅]), 
  parbreak() }