{
  "programs": [
    "Program {\n    span: 91..1729,\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        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 187..202,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 201..217,\n        stmts: [],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 219..238,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 216..238,\n        label: Ident {\n            span: 216..217,\n            sym: \"a\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 240..262,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 237..262,\n        label: Ident {\n            span: 237..238,\n            sym: \"b\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 264..289,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 261..289,\n        label: Ident {\n            span: 261..262,\n            sym: \"c\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 286..290,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 289..297,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 291..312,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 309..313,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 312..320,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 314..338,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 335..339,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 338..346,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 340..361,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 358..362,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 361..369,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 363..389,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 384..390,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 389..397,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 391..414,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 409..415,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 414..422,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 416..438,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 440..467,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 437..467,\n        label: Ident {\n            span: 437..438,\n            sym: \"f\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 464..469,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 468..473,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 488..504,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 472..512,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 509..514,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 513..519,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 518..536,\n        stmts: [],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 533..540,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 558..574,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 539..586,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 580..589,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 591..615,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 587..615,\n        label: Ident {\n            span: 587..589,\n            sym: \"sa\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 609..618,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 620..645,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 616..645,\n        label: Ident {\n            span: 616..618,\n            sym: \"sb\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 639..649,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 646..653,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 652..672,\n        stmts: [],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 666..676,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 673..678,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 677..682,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 697..712,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 681..714,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 713..725,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1668..1680,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1679..1685,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1684..1688,\n        stmts: [],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1687..1697,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1694..1701,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1711..1727,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1700..1729,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1728..1729,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 91..152,\n        ident: Ident {\n            span: 101..109,\n            sym: \"MyString\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [\n            Ident {\n                span: 118..126,\n                sym: \"String\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 131..145,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 131..134,\n                            sym: \"foo\",\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: 716..1081,\n        ident: Ident {\n            span: 726..727,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 734..761,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 735..736,\n                        name: Some(\n                            Ident {\n                                span: 735..736,\n                                sym: \"x\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 760..782,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 760..761,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 781..806,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 781..782,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 805..833,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 805..806,\n                            sym: \"c\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 830..856,\n                kind: Property,\n                name: Some(\n                    Str(\n                        StrLit {\n                            span: 830..833,\n                            value: \"d\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 853..882,\n                kind: Property,\n                name: Some(\n                    Str(\n                        StrLit {\n                            span: 853..856,\n                            value: \"e\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 879..905,\n                kind: Property,\n                name: Some(\n                    Num(\n                        NumberLit {\n                            span: 879..882,\n                            value: 1.0,\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 902..929,\n                kind: Property,\n                name: Some(\n                    Num(\n                        NumberLit {\n                            span: 902..905,\n                            value: 2.0,\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 928..951,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 950..975,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 951..953,\n                        name: Some(\n                            Ident {\n                                span: 951..952,\n                                sym: \"x\",\n                            },\n                        ),\n                        ty: None,\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 972..1005,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 972..975,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1000..1030,\n                kind: Property,\n                name: Some(\n                    Str(\n                        StrLit {\n                            span: 1000..1005,\n                            value: \"3.0\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1025..1054,\n                kind: Property,\n                name: Some(\n                    Str(\n                        StrLit {\n                            span: 1025..1030,\n                            value: \"4.0\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1053..1076,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1053..1054,\n                            sym: \"f\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1078..1447,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1078..1447,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 1082..1083,\n        sym: \"a\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 187..198,\n        sym: \"constructor\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 198..202,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 219..225,\n        sym: \"string\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 240..246,\n        sym: \"number\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 264..289,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 286..289,\n            value: \"d\",\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 291..297,\n        sym: \"string\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 309..312,\n            value: \"e\",\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 314..320,\n        sym: \"number\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 335..338,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 340..346,\n        sym: \"string\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 358..361,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 363..369,\n        sym: \"number\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 384..389,\n            value: \"3.0\",\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 391..397,\n        sym: \"string\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 409..414,\n            value: \"4.0\",\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 416..422,\n        sym: \"number\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 440..448,\n        sym: \"MyString\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 464..467,\n        sym: \"get\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 468..469,\n        sym: \"X\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 469..473,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 495..497,\n            value: \"\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 509..512,\n        sym: \"set\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 513..514,\n        sym: \"X\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 515..516,\n        sym: \"v\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 514..519,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 533..536,\n        sym: \"foo\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 536..540,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 565..567,\n            value: \"\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 580..586,\n        sym: \"static\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 591..597,\n        sym: \"number\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 609..615,\n        sym: \"static\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 620..626,\n        sym: \"string\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 639..645,\n        sym: \"static\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 646..649,\n        sym: \"foo\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 649..653,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 666..672,\n        sym: \"static\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 673..676,\n        sym: \"get\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 677..678,\n        sym: \"X\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 678..682,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 704..705,\n            value: 1.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: 1675..1678,\n        sym: \"set\",\n    },\n)",
    "Seq(\n    SeqExpr {\n        span: 1668..1680,\n        exprs: [\n            _,\n            _,\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1679..1680,\n        sym: \"X\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1681..1682,\n        sym: \"v\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1680..1685,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1694..1697,\n        sym: \"foo\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1697..1701,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1718..1720,\n            value: \"\",\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 814..833,\n        members: [],\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 808..833,\n        params: [],\n        return_type: _,\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1056..1065,\n        name: Ident {\n            span: 1056..1065,\n            sym: \"MyString\",\n        },\n        type_args: [],\n    },\n)"
  ]
}
