{
  "programs": [
    "Program {\n    span: 73..4858,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Return(\n    ReturnStmt {\n        span: 164..192,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 196..217,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 131..227,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 156..192,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 188..217,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 226..250,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 121..259,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "Throw(\n    ThrowStmt {\n        span: 270..284,\n        arg: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 260..286,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 109..286,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 364..377,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 372..391,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 395..408,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 403..415,\n        label: None,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 335..421,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 356..391,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 387..415,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 420..448,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 507..530,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 534..626,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Throw(\n    ThrowStmt {\n        span: 628..663,\n        arg: _,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 478..665,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 499..530,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 526..626,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 619..663,\n                test: None,\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 768..789,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 795..809,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 737..811,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 758..789,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 785..809,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 863..881,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 925..950,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 956..974,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 890..976,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 915..950,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 946..974,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 844..976,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1384..1413,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 1408..1427,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1441..1473,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 1468..1487,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1498..1541,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 1536..1555,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1568..1616,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 1611..1623,\n        label: None,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 1343..1634,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 1369..1427,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1423..1487,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1483..1555,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1551..1623,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1628..1642,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1772..1812,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1826..1869,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1880..1934,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1947..1999,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 1727..2005,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 1757..1812,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1808..1869,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1865..1934,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1930..1999,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1703..2020,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 2014..2028,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2168..2189,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 2184..2197,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2208..2229,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 2224..2233,\n        label: None,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 2138..2241,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 2153..2197,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 2193..2233,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 2235..2246,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2331..2352,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 2347..2360,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2371..2392,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 2387..2403,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2405..2439,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 2434..2443,\n        label: None,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 2301..2451,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 2316..2360,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 2356..2403,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 2396..2443,\n                test: None,\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 2445..2456,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 2525..2550,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 2561..2582,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 2495..2584,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 2510..2550,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 2546..2582,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 2751..2780,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 2775..2790,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2808..2837,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 2832..2842,\n        label: None,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 2708..2851,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 2729..2790,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 2786..2842,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 2845..2859,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 3155..3179,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 3272..3304,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 3335..3370,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 3392..3421,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 3202..3427,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 3237..3304,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 3300..3370,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 3363..3421,\n                test: None,\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 3101..3429,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 3128..3179,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 3175..3427,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 3547..3571,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 3664..3696,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 3727..3752,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 3594..3758,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 3629..3696,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 3692..3752,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 3493..3760,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 3520..3571,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 3567..3758,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 3871..3887,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 3882..3901,\n        label: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3905..3921,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 3916..3928,\n        label: None,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 3838..3939,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 3863..3901,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 3897..3928,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 3933..3944,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 4144..4174,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 4187..4210,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 4082..4212,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 4127..4174,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 4170..4210,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Break(\n    BreakStmt {\n        span: 4383..4406,\n        label: None,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 4410..4426,\n        label: None,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 4346..4432,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 4375..4406,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 4402..4426,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 4309..4434,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "While(\n    WhileStmt {\n        span: 4296..4434,\n        test: _,\n        body: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 4597..4611,\n        expr: _,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 4555..4617,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 4575..4611,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 4616..4647,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 4641..4655,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 4799..4818,\n        arg: None,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 4826..4856,\n        expr: _,\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 4749..4858,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 4771..4791,\n                test: Some(\n                    _,\n                ),\n                cons: [],\n            },\n            SwitchCase {\n                span: 4787..4818,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 4811..4856,\n                test: None,\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "Fn(\n    FnDecl {\n        span: 73..296,\n        ident: Ident {\n            span: 82..84,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 316..341,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 316..330,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 288..458,\n        ident: Ident {\n            span: 297..299,\n            sym: \"f2\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 450..693,\n        ident: Ident {\n            span: 459..461,\n            sym: \"f3\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 689..714,\n        ident: Ident {\n            span: 694..695,\n            sym: \"E\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 698..700,\n                name: Ident(\n                    Ident {\n                        span: 698..699,\n                        sym: \"A\",\n                    },\n                ),\n                init: None,\n            },\n            TsEnumMember {\n                span: 701..704,\n                name: Ident(\n                    Ident {\n                        span: 701..702,\n                        sym: \"B\",\n                    },\n                ),\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 706..821,\n        ident: Ident {\n            span: 715..716,\n            sym: \"f\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 813..1009,\n        ident: Ident {\n            span: 822..823,\n            sym: \"g\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1000..1061,\n        ident: Ident {\n            span: 1010..1016,\n            sym: \"Square\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1019..1039,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1019..1023,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1035..1050,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1035..1039,\n                            sym: \"size\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1052..1136,\n        ident: Ident {\n            span: 1062..1071,\n            sym: \"Rectangle\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1074..1098,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1074..1078,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1093..1114,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1093..1098,\n                            sym: \"width\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1108..1125,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1108..1114,\n                            sym: \"height\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1127..1190,\n        ident: Ident {\n            span: 1137..1143,\n            sym: \"Circle\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1146..1168,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1146..1150,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1162..1179,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1162..1168,\n                            sym: \"radius\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1181..1241,\n        ident: Ident {\n            span: 1191..1199,\n            sym: \"Triangle\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1202..1224,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1202..1206,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1220..1235,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1220..1224,\n                            sym: \"side\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1237..1299,\n        ident: Ident {\n            span: 1242..1247,\n            sym: \"Shape\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1329..1349,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1329..1338,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1291..1652,\n        ident: Ident {\n            span: 1300..1304,\n            sym: \"area\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1689..1707,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1689..1698,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1644..2056,\n        ident: Ident {\n            span: 1653..1664,\n            sym: \"areaWrapped\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 2052..2084,\n        ident: Ident {\n            span: 2057..2063,\n            sym: \"MyEnum\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 2067..2069,\n                name: Ident(\n                    Ident {\n                        span: 2067..2068,\n                        sym: \"A\",\n                    },\n                ),\n                init: None,\n            },\n            TsEnumMember {\n                span: 2071..2074,\n                name: Ident(\n                    Ident {\n                        span: 2071..2072,\n                        sym: \"B\",\n                    },\n                ),\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2122..2144,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2122..2136,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2076..2256,\n        ident: Ident {\n            span: 2085..2099,\n            sym: \"thisGivesError\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2285..2307,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2285..2299,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2248..2466,\n        ident: Ident {\n            span: 2257..2262,\n            sym: \"good1\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 2458..2612,\n        ident: Ident {\n            span: 2467..2472,\n            sym: \"good2\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 2608..2643,\n        ident: Ident {\n            span: 2613..2618,\n            sym: \"Level\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 2623..2627,\n                name: Ident(\n                    Ident {\n                        span: 2623..2626,\n                        sym: \"One\",\n                    },\n                ),\n                init: None,\n            },\n            TsEnumMember {\n                span: 2630..2634,\n                name: Ident(\n                    Ident {\n                        span: 2630..2633,\n                        sym: \"Two\",\n                    },\n                ),\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2689..2714,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2689..2705,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2638..2893,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2638..2860,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 2884..2954,\n        ident: Ident {\n            span: 2894..2901,\n            sym: \"Square2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 2908..2932,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2908..2912,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 2928..2943,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2928..2932,\n                            sym: \"size\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 2945..3012,\n        ident: Ident {\n            span: 2955..2962,\n            sym: \"Circle2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 2969..2995,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2969..2973,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 2989..3006,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2989..2995,\n                            sym: \"radius\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 3008..3050,\n        ident: Ident {\n            span: 3013..3019,\n            sym: \"Shape2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 3042..3439,\n        ident: Ident {\n            span: 3051..3062,\n            sym: \"withDefault\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 3431..3792,\n        ident: Ident {\n            span: 3440..3454,\n            sym: \"withoutDefault\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3819..3844,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 3819..3833,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 3784..3972,\n        ident: Ident {\n            span: 3793..3798,\n            sym: \"test4\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 3968..4001,\n        ident: Ident {\n            span: 3973..3979,\n            sym: \"Animal\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 3982..3986,\n                name: Ident(\n                    Ident {\n                        span: 3982..3985,\n                        sym: \"DOG\",\n                    },\n                ),\n                init: None,\n            },\n            TsEnumMember {\n                span: 3987..3992,\n                name: Ident(\n                    Ident {\n                        span: 3987..3990,\n                        sym: \"CAT\",\n                    },\n                ),\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 4002..4054,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 4002..4044,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 4046..4244,\n        ident: Ident {\n            span: 4055..4065,\n            sym: \"expression\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 4257..4301,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 4257..4291,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 4319..4352,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 4319..4337,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 4236..4462,\n        ident: Ident {\n            span: 4245..4248,\n            sym: \"foo\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4458..4505,\n        ident: Ident {\n            span: 4463..4464,\n            sym: \"O\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4501..4533,\n        ident: Ident {\n            span: 4506..4507,\n            sym: \"K\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 4525..4682,\n        ident: Ident {\n            span: 4534..4536,\n            sym: \"ff\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 4678..4731,\n        ident: Ident {\n            span: 4683..4684,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 4723..4858,\n        ident: Ident {\n            span: 4732..4738,\n            sym: \"f35431\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 85..86,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 300..301,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 320..321,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 364..365,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 395..396,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 462..463,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 717..718,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 824..825,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1305..1306,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1333..1337,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1384..1388,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1441..1445,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1498..1502,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1568..1572,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1665..1666,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1693..1697,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1703..1707,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2100..2101,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2126..2127,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2168..2169,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2208..2209,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2263..2264,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2289..2290,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2331..2332,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2371..2372,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2405..2406,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2473..2474,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2644..2664,\n        sym: \"doSomethingWithLevel\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2668..2673,\n        sym: \"level\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2693..2697,\n        sym: \"next\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2751..2755,\n        sym: \"next\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2808..2812,\n        sym: \"next\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2665..2860,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3063..3065,\n        sym: \"s1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3075..3077,\n        sym: \"s2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3455..3457,\n        sym: \"s1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3467..3469,\n        sym: \"s2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3799..3804,\n        sym: \"value\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3823..3824,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3871..3872,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3905..3906,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4008..4011,\n        sym: \"zoo\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4263..4266,\n        sym: \"foo\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4325..4330,\n        sym: \"stats\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 4331..4337,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 4537..4538,\n        sym: \"o\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4543..4544,\n        sym: \"k\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4597..4598,\n        sym: \"k\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4739..4740,\n        sym: \"a\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Bool(\n        BoolLit {\n            span: 115..119,\n            value: true,\n        },\n    ),\n)",
    "Unary(\n    UnaryExpr {\n        span: 114..120,\n        op: Bang,\n        arg: _,\n    },\n)",
    "Unary(\n    UnaryExpr {\n        span: 113..120,\n        op: Bang,\n        arg: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 139..140,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 161..162,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 171..174,\n            value: \"a\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 193..194,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 203..206,\n            value: \"b\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 226..227,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 276..277,\n            value: 0.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 343..344,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 361..362,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 368..370,\n            value: 10.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 366..371,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 392..393,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 399..401,\n            value: 20.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 397..402,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 420..421,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 486..487,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 504..505,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 514..516,\n            value: 10.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 531..532,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 541..543,\n            value: 20.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 638..643,\n        sym: \"Error\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 644..655,\n            value: \"Bad input\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 643..657,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 634..657,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 745..746,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 763..764,\n        sym: \"E\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 764..767,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 765..766,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 775..776,\n            value: 0.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 790..791,\n        sym: \"E\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 791..794,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 792..793,\n                sym: \"B\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 802..803,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 849..853,\n            value: true,\n        },\n    ),\n)",
    "Unary(\n    UnaryExpr {\n        span: 848..854,\n        op: Bang,\n        arg: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 871..872,\n            value: 1.0,\n        },\n    ),\n)",
    "Unary(\n    UnaryExpr {\n        span: 870..881,\n        op: Minus,\n        arg: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 898..899,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 920..921,\n        sym: \"E\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 921..924,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 922..923,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 932..933,\n            value: 0.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 951..952,\n        sym: \"E\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 952..955,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 953..954,\n                sym: \"B\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 963..964,\n            value: 1.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1351..1352,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1352..1358,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1353..1357,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1374..1382,\n            value: \"square\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1391..1392,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1392..1399,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1393..1397,\n                sym: \"size\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1400..1401,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1401..1407,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1402..1406,\n                sym: \"size\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1398..1407,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1389..1407,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1428..1439,\n            value: \"rectangle\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1448..1449,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1449..1457,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1450..1455,\n                sym: \"width\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1458..1459,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1459..1467,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1460..1466,\n                sym: \"height\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1456..1467,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1446..1467,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1488..1496,\n            value: \"circle\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1505..1509,\n        sym: \"Math\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1509..1514,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1510..1512,\n                sym: \"PI\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1515..1516,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1516..1525,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1517..1523,\n                sym: \"radius\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1513..1525,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1526..1527,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1527..1535,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1528..1534,\n                sym: \"radius\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1524..1535,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1503..1535,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1556..1566,\n            value: \"triangle\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1575..1579,\n        sym: \"Math\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1579..1585,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1580..1584,\n                sym: \"sqrt\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1585..1586,\n            value: 3.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 1584..1589,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1590..1591,\n            value: 4.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 1588..1593,\n        op: Div,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1594..1595,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1595..1602,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1596..1600,\n                sym: \"side\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1592..1602,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1603..1604,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1604..1610,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1605..1609,\n                sym: \"side\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1601..1610,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1573..1610,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1635..1639,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1735..1736,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1736..1742,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1737..1741,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1762..1770,\n            value: \"square\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1779..1780,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1780..1787,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1781..1785,\n                sym: \"size\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1788..1789,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1789..1795,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1790..1794,\n                sym: \"size\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1786..1795,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1813..1824,\n            value: \"rectangle\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1833..1834,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1834..1842,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1835..1840,\n                sym: \"width\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1843..1844,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1844..1852,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1845..1851,\n                sym: \"height\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1841..1852,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1870..1878,\n            value: \"circle\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1887..1891,\n        sym: \"Math\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1891..1896,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1892..1894,\n                sym: \"PI\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1897..1898,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1898..1907,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1899..1905,\n                sym: \"radius\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1895..1907,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1908..1909,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1909..1917,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1910..1916,\n                sym: \"radius\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1906..1917,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1935..1945,\n            value: \"triangle\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1954..1958,\n        sym: \"Math\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1958..1964,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1959..1963,\n                sym: \"sqrt\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1964..1965,\n            value: 3.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 1963..1968,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1969..1970,\n            value: 4.0,\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 1967..1972,\n        op: Div,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1973..1974,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1974..1981,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1975..1979,\n                sym: \"side\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1971..1981,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1982..1983,\n        sym: \"s\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1983..1989,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1984..1988,\n                sym: \"side\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1980..1989,\n        op: Mul,\n        left: _,\n        right: _,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1711..2006,\n        params: [],\n        body: Block(\n            [\n                _,\n            ],\n        ),\n        is_async: false,\n    },\n)",
    "Paren(\n    ParenExpr {\n        span: 1710..2007,\n        expr: _,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2006..2009,\n        callee: _,\n        args: [],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1708..2009,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2021..2025,\n        sym: \"area\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2146..2147,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2158..2164,\n        sym: \"MyEnum\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2164..2167,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2165..2166,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2172..2182,\n            value: \"it was A\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 2170..2183,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2198..2204,\n        sym: \"MyEnum\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2204..2207,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2205..2206,\n                sym: \"B\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2212..2222,\n            value: \"it was B\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 2210..2223,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2242..2243,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2309..2310,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2321..2327,\n        sym: \"MyEnum\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2327..2330,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2328..2329,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2335..2345,\n            value: \"it was A\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 2333..2346,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2361..2367,\n        sym: \"MyEnum\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2367..2370,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2368..2369,\n                sym: \"B\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2375..2385,\n            value: \"it was B\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 2373..2386,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2409..2432,\n            value: \"it was something else\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 2407..2433,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2452..2453,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2503..2504,\n        sym: \"e\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2515..2521,\n        sym: \"MyEnum\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2521..2524,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2522..2523,\n                sym: \"A\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2532..2542,\n            value: \"it was A\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 2551..2557,\n        sym: \"MyEnum\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2557..2560,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2558..2559,\n                sym: \"B\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2568..2578,\n            value: \"it was B\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 2716..2721,\n        sym: \"level\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2734..2739,\n        sym: \"Level\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2739..2744,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2740..2743,\n                sym: \"One\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 2758..2763,\n        sym: \"Level\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2763..2768,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2764..2767,\n                sym: \"Two\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2756..2768,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2791..2796,\n        sym: \"Level\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2796..2801,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2797..2800,\n                sym: \"Two\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 2815..2820,\n        sym: \"Level\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2820..2825,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2821..2824,\n                sym: \"One\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2813..2825,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2852..2856,\n        sym: \"next\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2667..2860,\n        params: [\n            _,\n        ],\n        body: Block(\n            [\n                _,\n                _,\n                _,\n            ],\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3109..3111,\n        sym: \"s1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 3111..3117,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 3112..3116,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3133..3141,\n            value: \"square\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3162..3165,\n            value: \"1\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3180..3188,\n            value: \"circle\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3210..3212,\n        sym: \"s2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 3212..3218,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 3213..3217,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3242..3250,\n            value: \"square\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3279..3282,\n            value: \"2\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3305..3313,\n            value: \"circle\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3342..3345,\n            value: \"3\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3399..3406,\n            value: \"never\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3501..3503,\n        sym: \"s1\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 3503..3509,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 3504..3508,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3525..3533,\n            value: \"square\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3554..3557,\n            value: \"1\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3572..3580,\n            value: \"circle\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3602..3604,\n        sym: \"s2\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 3604..3610,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 3605..3609,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3634..3642,\n            value: \"square\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3671..3674,\n            value: \"2\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3697..3705,\n            value: \"circle\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3734..3737,\n            value: \"3\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3846..3851,\n        sym: \"value\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 3868..3869,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3875..3880,\n            value: \"one\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 3873..3881,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 3902..3903,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3909..3914,\n            value: \"two\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 3907..3915,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3940..3941,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4090..4093,\n        sym: \"zoo\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4093..4104,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4095..4101,\n                sym: \"animal\",\n            },\n        ),\n    },\n)",
    "OptChain(\n    OptChainExpr {\n        span: 4093..4104,\n        base: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 4105..4111,\n        sym: \"Animal\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4111..4116,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4112..4115,\n                sym: \"DOG\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 4102..4116,\n        op: NullishCoalescing,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 4132..4138,\n        sym: \"Animal\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4138..4143,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4139..4142,\n                sym: \"DOG\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 4151..4157,\n        sym: \"Animal\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4157..4174,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4158..4161,\n                sym: \"DOG\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 4175..4181,\n        sym: \"Animal\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4181..4186,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4182..4185,\n                sym: \"CAT\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 4194..4200,\n        sym: \"Animal\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4200..4210,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4201..4204,\n                sym: \"CAT\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 4289..4290,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 4303..4307,\n            value: true,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 4333..4336,\n        sym: \"foo\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4354..4359,\n        sym: \"stats\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 4380..4381,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 4407..4408,\n            value: 2.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 4562..4563,\n        sym: \"k\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4580..4583,\n            value: \"c\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4601..4604,\n            value: \"a\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 4599..4605,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 4616..4617,\n        sym: \"k\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4622..4625,\n            value: \"c\",\n        },\n    ),\n)",
    "Binary(\n    BinaryExpr {\n        span: 4618..4626,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 4648..4649,\n        sym: \"o\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 4650..4651,\n        sym: \"k\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4649..4653,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 4757..4758,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4758..4764,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4759..4763,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4776..4781,\n            value: \"abc\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4792..4797,\n            value: \"def\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 4826..4827,\n        sym: \"a\",\n    },\n)",
    "TsNonNull(\n    TsNonNullExpr {\n        span: 4827..4829,\n        expr: _,\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 4828..4834,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 4829..4833,\n                sym: \"kind\",\n            },\n        ),\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Lit(\n    Str(\n        StrLit {\n            span: 1025..1033,\n            value: \"square\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1080..1091,\n            value: \"rectangle\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1152..1160,\n            value: \"circle\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1208..1218,\n            value: \"triangle\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1250..1258,\n        name: Ident {\n            span: 1250..1258,\n            sym: \"Square\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1259..1270,\n        name: Ident {\n            span: 1259..1270,\n            sym: \"Rectangle\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1271..1279,\n        name: Ident {\n            span: 1271..1279,\n            sym: \"Circle\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1280..1289,\n        name: Ident {\n            span: 1280..1289,\n            sym: \"Triangle\",\n        },\n        type_args: [],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 1250..1289,\n        types: [\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2914..2922,\n            value: \"square\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2975..2983,\n            value: \"circle\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3022..3031,\n        name: Ident {\n            span: 3022..3031,\n            sym: \"Square2\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 3032..3040,\n        name: Ident {\n            span: 3032..3040,\n            sym: \"Circle2\",\n        },\n        type_args: [],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 3022..3040,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 4467..4500,\n        members: [\n            TsTypeMember {\n                span: 4473..4489,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 4473..4474,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 4488..4499,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 4488..4489,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 4516..4519,\n        name: Ident {\n            span: 4516..4519,\n            sym: \"O\",\n        },\n        type_args: [],\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 4510..4519,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4520..4523,\n            value: \"c\",\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 4510..4524,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4695..4700,\n            value: \"abc\",\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 4687..4704,\n        members: [\n            TsTypeMember {\n                span: 4689..4702,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 4689..4693,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 4713..4718,\n            value: \"def\",\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 4705..4721,\n        members: [\n            TsTypeMember {\n                span: 4707..4720,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 4707..4711,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 4687..4721,\n        types: [\n            _,\n            _,\n        ],\n    },\n)"
  ]
}
