{
  "programs": [
    "Program {\n    span: 228..1330,\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}"
  ],
  "stmts": [
    "Expr(\n    ExprStmt {\n        span: 254..261,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 298..305,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 346..353,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 396..408,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 466..472,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 462..472,\n        label: Ident {\n            span: 462..464,\n            sym: \"a2\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 501..507,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 497..507,\n        label: Ident {\n            span: 497..499,\n            sym: \"a3\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 532..538,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 528..538,\n        label: Ident {\n            span: 528..530,\n            sym: \"a4\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 574..580,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 570..580,\n        label: Ident {\n            span: 570..572,\n            sym: \"a5\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 617..623,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 613..623,\n        label: Ident {\n            span: 613..615,\n            sym: \"a6\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 622..631,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 624..636,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 677..683,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 672..683,\n        label: Ident {\n            span: 672..675,\n            sym: \"a11\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 697..702,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 701..704,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 710..716,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 705..716,\n        label: Ident {\n            span: 705..708,\n            sym: \"foo\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 718..721,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 713..721,\n        label: Ident {\n            span: 713..716,\n            sym: \"bar\",\n        },\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 703..722,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 721..725,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 723..730,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 726..739,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 741..747,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 736..747,\n        label: Ident {\n            span: 736..739,\n            sym: \"a15\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 763..766,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 760..766,\n        label: Ident {\n            span: 760..761,\n            sym: \"b\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 765..767,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 766..770,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 768..772,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 785..791,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 780..791,\n        label: Ident {\n            span: 780..783,\n            sym: \"a16\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 790..799,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 792..804,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 820..823,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 817..823,\n        label: Ident {\n            span: 817..818,\n            sym: \"b\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 822..824,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 823..827,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 825..829,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 833..852,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1088..1100,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1160..1172,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1220..1225,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1224..1227,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1233..1239,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 1228..1239,\n        label: Ident {\n            span: 1228..1231,\n            sym: \"foo\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1241..1244,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 1236..1244,\n        label: Ident {\n            span: 1236..1239,\n            sym: \"bar\",\n        },\n        body: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1226..1245,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1244..1248,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1246..1253,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1249..1257,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1256..1268,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 843..909,\n        ident: Ident {\n            span: 853..854,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 855..856,\n                sym: \"T\",\n            },\n        ],\n        extends: [\n            Ident {\n                span: 866..869,\n                sym: \"A\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 874..898,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 874..875,\n                            sym: \"a\",\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: 900..973,\n        ident: Ident {\n            span: 910..912,\n            sym: \"I2\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 913..914,\n                sym: \"T\",\n            },\n        ],\n        extends: [\n            Ident {\n                span: 924..927,\n                sym: \"A\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 932..962,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 932..934,\n                            sym: \"a2\",\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: 964..1029,\n        ident: Ident {\n            span: 974..976,\n            sym: \"I3\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 977..978,\n                sym: \"T\",\n            },\n        ],\n        extends: [\n            Ident {\n                span: 988..991,\n                sym: \"A\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 996..1018,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 996..998,\n                            sym: \"a3\",\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: 1259..1330,\n        ident: Ident {\n            span: 1269..1271,\n            sym: \"I9\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1272..1273,\n                sym: \"T\",\n            },\n        ],\n        extends: [\n            Ident {\n                span: 1283..1286,\n                sym: \"A\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 1291..1330,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1291..1294,\n                            sym: \"a16\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [],
  "exprs": [
    "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)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "New(\n    NewExpr {\n        span: 466..472,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "New(\n    NewExpr {\n        span: 501..507,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "New(\n    NewExpr {\n        span: 532..538,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "New(\n    NewExpr {\n        span: 574..580,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "New(\n    NewExpr {\n        span: 617..623,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 622..623,\n        sym: \"T\",\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)",
    "New(\n    NewExpr {\n        span: 677..683,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 700..701,\n        sym: \"y\",\n    },\n)",
    "Seq(\n    SeqExpr {\n        span: 697..702,\n        exprs: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 710..711,\n        sym: \"T\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 718..719,\n        sym: \"T\",\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: 726..730,\n        sym: \"Base\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "New(\n    NewExpr {\n        span: 741..747,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 763..764,\n        sym: \"T\",\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)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "New(\n    NewExpr {\n        span: 785..791,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 790..791,\n        sym: \"T\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 820..821,\n        sym: \"T\",\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)",
    "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)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1223..1224,\n        sym: \"y\",\n    },\n)",
    "Seq(\n    SeqExpr {\n        span: 1220..1225,\n        exprs: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1233..1234,\n        sym: \"U\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1241..1242,\n        sym: \"U\",\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: 1249..1253,\n        sym: \"Base\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 885..887,\n        name: Ident {\n            span: 885..887,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 891..893,\n        name: Ident {\n            span: 891..893,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Array(\n    TsArrayType {\n        span: 891..895,\n        elem_type: _,\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 881..895,\n        params: [\n            TsFnParam {\n                span: 882..887,\n                name: Some(\n                    Ident {\n                        span: 882..883,\n                        sym: \"x\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 944..946,\n        name: Ident {\n            span: 944..946,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Array(\n    TsArrayType {\n        span: 950..959,\n        elem_type: _,\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 940..959,\n        params: [\n            TsFnParam {\n                span: 941..946,\n                name: Some(\n                    Ident {\n                        span: 941..942,\n                        sym: \"x\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1008..1010,\n        name: Ident {\n            span: 1008..1010,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1014..1016,\n        name: Ident {\n            span: 1014..1016,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 1004..1016,\n        params: [\n            TsFnParam {\n                span: 1005..1010,\n                name: Some(\n                    Ident {\n                        span: 1005..1006,\n                        sym: \"x\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1309..1311,\n        name: Ident {\n            span: 1309..1311,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1315..1318,\n        name: Ident {\n            span: 1315..1318,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1304..1319,\n        members: [\n            TsTypeMember {\n                span: 1306..1313,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1306..1307,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1312..1318,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1312..1313,\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: 1323..1325,\n        name: Ident {\n            span: 1323..1325,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Array(\n    TsArrayType {\n        span: 1323..1327,\n        elem_type: _,\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 1300..1327,\n        params: [\n            TsFnParam {\n                span: 1301..1319,\n                name: Some(\n                    Ident {\n                        span: 1301..1302,\n                        sym: \"x\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)"
  ]
}
