{
  "programs": [
    "Program {\n    span: 64..874,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 120..131,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 128..144,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 242..255,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 251..269,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 317..328,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 408..411,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 410..416,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 423..433,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 432..444,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 443..455,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 454..478,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 620..626,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 625..632,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 631..641,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 640..651,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 650..664,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 663..683,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 816..822,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 821..828,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 827..837,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 836..847,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 846..860,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 859..874,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Fn(\n    FnDecl {\n        span: 64..98,\n        ident: Ident {\n            span: 73..76,\n            sym: \"foo\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 90..123,\n        ident: Ident {\n            span: 99..102,\n            sym: \"foo\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 136..170,\n        ident: Ident {\n            span: 145..149,\n            sym: \"foo2\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 162..208,\n        ident: Ident {\n            span: 171..175,\n            sym: \"foo2\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 200..246,\n        ident: Ident {\n            span: 209..213,\n            sym: \"foo2\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 413..424,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 413..422,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 469..613,\n        ident: Ident {\n            span: 479..480,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 487..506,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 488..499,\n                        name: Some(\n                            Ident {\n                                span: 488..489,\n                                sym: \"x\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: true,\n                    },\n                ],\n                ty: None,\n            },\n            TsTypeMember {\n                span: 505..538,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 506..517,\n                        name: Some(\n                            Ident {\n                                span: 506..507,\n                                sym: \"x\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: true,\n                    },\n                    TsFnParam {\n                        span: 518..529,\n                        name: Some(\n                            Ident {\n                                span: 518..519,\n                                sym: \"y\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: true,\n                    },\n                ],\n                ty: None,\n            },\n            TsTypeMember {\n                span: 535..570,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 535..538,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 539..549,\n                        name: Some(\n                            Ident {\n                                span: 539..540,\n                                sym: \"x\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 550..561,\n                        name: Some(\n                            Ident {\n                                span: 550..551,\n                                sym: \"y\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: true,\n                    },\n                ],\n                ty: None,\n            },\n            TsTypeMember {\n                span: 567..608,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 567..570,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 571..581,\n                        name: Some(\n                            Ident {\n                                span: 571..572,\n                                sym: \"x\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 582..593,\n                        name: Some(\n                            Ident {\n                                span: 582..583,\n                                sym: \"y\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: true,\n                    },\n                    TsFnParam {\n                        span: 594..605,\n                        name: Some(\n                            Ident {\n                                span: 594..595,\n                                sym: \"z\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: true,\n                    },\n                ],\n                ty: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 610..621,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 610..619,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 680..817,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 680..817,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 77..78,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 103..104,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 150..151,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 176..177,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 187..188,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 214..215,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 225..226,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 417..418,\n        sym: \"c\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 614..615,\n        sym: \"i\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 684..685,\n        sym: \"a\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 120..123,\n        sym: \"foo\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 124..125,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 123..127,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 128..131,\n        sym: \"foo\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 131..134,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 242..246,\n        sym: \"foo2\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 247..248,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 246..250,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 251..255,\n        sym: \"foo2\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 256..257,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 259..260,\n            value: 2.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 255..262,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 423..424,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 424..429,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 425..428,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 428..431,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 432..433,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 433..438,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 434..437,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 438..439,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 437..441,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 443..444,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 444..450,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 445..449,\n                sym: \"foo2\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 450..451,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 449..453,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 454..455,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 455..461,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 456..460,\n                sym: \"foo2\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 461..462,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 464..465,\n            value: 2.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 460..467,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 620..621,\n        sym: \"i\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 621..624,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 625..626,\n        sym: \"i\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 627..628,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 626..630,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 631..632,\n        sym: \"i\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 633..634,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 636..637,\n            value: 2.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 632..639,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 640..641,\n        sym: \"i\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 641..646,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 642..645,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 646..647,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 645..649,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 650..651,\n        sym: \"i\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 651..656,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 652..655,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 656..657,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 659..660,\n            value: 2.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 655..662,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 663..664,\n        sym: \"i\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 664..669,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 665..668,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 669..670,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 672..673,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 675..676,\n            value: 3.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 668..678,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 816..817,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 817..820,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 821..822,\n        sym: \"a\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 823..824,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 822..826,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 827..828,\n        sym: \"a\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 829..830,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 832..833,\n            value: 2.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 828..835,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 836..837,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 837..842,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 838..841,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 842..843,\n            value: 1.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 841..845,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 846..847,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 847..852,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 848..851,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 852..853,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 855..856,\n            value: 2.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 851..858,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 859..860,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 860..865,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 861..864,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 865..866,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 868..869,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 871..872,\n            value: 3.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 864..874,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)"
  ]
}
