{
  "programs": [
    "Program {\n    span: 56..1484,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\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: 602..613,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 679..690,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 872..880,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1080..1088,\n        expr: _,\n    },\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 56..119,\n        ident: Ident {\n            span: 66..67,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 74..99,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 75..76,\n                        name: Some(\n                            Ident {\n                                span: 75..76,\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: 96..107,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 96..99,\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: 110..177,\n        ident: Ident {\n            span: 120..122,\n            sym: \"I2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 129..154,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 130..131,\n                        name: Some(\n                            Ident {\n                                span: 130..131,\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: 151..165,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 151..154,\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: 168..235,\n        ident: Ident {\n            span: 178..180,\n            sym: \"I3\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 187..212,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 188..189,\n                        name: Some(\n                            Ident {\n                                span: 188..189,\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: 209..223,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 209..212,\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: 226..294,\n        ident: Ident {\n            span: 236..238,\n            sym: \"I4\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 245..270,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 246..247,\n                        name: Some(\n                            Ident {\n                                span: 246..247,\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: 267..282,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 267..270,\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: 285..350,\n        ident: Ident {\n            span: 295..297,\n            sym: \"I5\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 304..329,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 305..306,\n                        name: Some(\n                            Ident {\n                                span: 305..306,\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: 326..338,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 326..329,\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: 341..408,\n        ident: Ident {\n            span: 351..353,\n            sym: \"I6\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 360..385,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 361..362,\n                        name: Some(\n                            Ident {\n                                span: 361..362,\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: 382..396,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 382..385,\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: 399..475,\n        ident: Ident {\n            span: 409..411,\n            sym: \"I7\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 418..443,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 419..420,\n                        name: Some(\n                            Ident {\n                                span: 419..420,\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: 440..463,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 440..443,\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: 466..535,\n        ident: Ident {\n            span: 476..478,\n            sym: \"I8\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 485..510,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 486..487,\n                        name: Some(\n                            Ident {\n                                span: 486..487,\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: 507..523,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 507..510,\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: 526..584,\n        ident: Ident {\n            span: 536..538,\n            sym: \"I9\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 545..570,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 546..547,\n                        name: Some(\n                            Ident {\n                                span: 546..547,\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: 567..577,\n                kind: Property,\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                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 604..662,\n        ident: Ident {\n            span: 614..617,\n            sym: \"I10\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 624..649,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 625..626,\n                        name: Some(\n                            Ident {\n                                span: 625..626,\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: 646..655,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 646..649,\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: 681..753,\n        ident: Ident {\n            span: 691..694,\n            sym: \"I11\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 701..726,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 702..703,\n                        name: Some(\n                            Ident {\n                                span: 702..703,\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: 723..741,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 723..726,\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: 744..819,\n        ident: Ident {\n            span: 754..757,\n            sym: \"I12\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 764..789,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 765..766,\n                        name: Some(\n                            Ident {\n                                span: 765..766,\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: 786..807,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 786..789,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 876..898,\n        ident: Ident {\n            span: 881..882,\n            sym: \"E\",\n        },\n        declare: false,\n        is_const: false,\n        members: [\n            TsEnumMember {\n                span: 885..888,\n                name: Ident(\n                    Ident {\n                        span: 885..886,\n                        sym: \"A\",\n                    },\n                ),\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 889..951,\n        ident: Ident {\n            span: 899..902,\n            sym: \"I14\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 909..934,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 910..911,\n                        name: Some(\n                            Ident {\n                                span: 910..911,\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: 931..940,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 931..934,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 943..966,\n        ident: Ident {\n            span: 952..953,\n            sym: \"f\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 982..996,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 982..994,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 960..1006,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 967..968,\n                sym: \"f\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 997..1063,\n        ident: Ident {\n            span: 1007..1010,\n            sym: \"I15\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1017..1042,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 1018..1019,\n                        name: Some(\n                            Ident {\n                                span: 1018..1019,\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: 1039..1055,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1039..1042,\n                            sym: \"foo\",\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: 1104..1118,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1104..1116,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 1082..1128,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 1089..1090,\n                sym: \"c\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1119..1189,\n        ident: Ident {\n            span: 1129..1132,\n            sym: \"I16\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1139..1164,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 1140..1141,\n                        name: Some(\n                            Ident {\n                                span: 1140..1141,\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: 1161..1177,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1161..1164,\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: 1180..1246,\n        ident: Ident {\n            span: 1190..1193,\n            sym: \"I17\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1194..1195,\n                sym: \"T\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1203..1228,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 1204..1205,\n                        name: Some(\n                            Ident {\n                                span: 1204..1205,\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: 1225..1234,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1225..1228,\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: 1237..1382,\n        ident: Ident {\n            span: 1247..1250,\n            sym: \"I18\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 1251..1252,\n                sym: \"T\",\n            },\n            Ident {\n                span: 1254..1255,\n                sym: \"U\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1263..1288,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 1264..1265,\n                        name: Some(\n                            Ident {\n                                span: 1264..1265,\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: 1285..1294,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1285..1288,\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: 1373..1441,\n        ident: Ident {\n            span: 1383..1386,\n            sym: \"I19\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1393..1418,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 1394..1395,\n                        name: Some(\n                            Ident {\n                                span: 1394..1395,\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: 1415..1429,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1415..1418,\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: 1432..1484,\n        ident: Ident {\n            span: 1442..1445,\n            sym: \"I20\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1452..1477,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 1453..1454,\n                        name: Some(\n                            Ident {\n                                span: 1453..1454,\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: 1474..1484,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1474..1477,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 986..989,\n        sym: \"bar\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 990..994,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1108..1111,\n        sym: \"bar\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1112..1116,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "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    Num(\n        NumberLit {\n            span: 992..993,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1114..1115,\n            value: 1.0,\n        },\n    ),\n)"
  ],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 975..996,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 1097..1118,\n        decl: _,\n    },\n)"
  ],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    Boolean,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 331..336,\n        name: Ident {\n            span: 331..336,\n            sym: \"Date\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 387..394,\n        name: Ident {\n            span: 387..394,\n            sym: \"RegExp\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    Number,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 445..461,\n        members: [\n            TsTypeMember {\n                span: 447..460,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 447..450,\n                            sym: \"bar\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    Number,\n)",
    "Array(\n    TsArrayType {\n        span: 512..521,\n        elem_type: _,\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 572..575,\n        name: Ident {\n            span: 572..575,\n            sym: \"I8\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 651..653,\n        name: Ident {\n            span: 651..653,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 728..739,\n        name: Ident {\n            span: 728..731,\n            sym: \"A2\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    Number,\n)",
    "Fn(\n    TsFnType {\n        span: 791..805,\n        params: [\n            TsFnParam {\n                span: 792..794,\n                name: Some(\n                    Ident {\n                        span: 792..793,\n                        sym: \"x\",\n                    },\n                ),\n                ty: None,\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 936..938,\n        name: Ident {\n            span: 936..938,\n            sym: \"E\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeQuery(\n    TsTypeQuery {\n        span: 1044..1053,\n        expr_name: Ident {\n            span: 1051..1053,\n            sym: \"f\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeQuery(\n    TsTypeQuery {\n        span: 1166..1175,\n        expr_name: Ident {\n            span: 1173..1175,\n            sym: \"c\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1230..1232,\n        name: Ident {\n            span: 1230..1232,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1290..1292,\n        name: Ident {\n            span: 1290..1292,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1420..1427,\n        name: Ident {\n            span: 1420..1427,\n            sym: \"Object\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Any,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1479..1482,\n        members: [],\n    },\n)"
  ]
}
