{
  "programs": [
    "Program {\n    span: 107..1083,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 130..179,\n        ident: Ident {\n            span: 140..141,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 152..170,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 152..155,\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: 176..193,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 176..185,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 190..213,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 190..205,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 210..227,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 210..225,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 107..235,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 114..116,\n                sym: \"M2\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                    _,\n                    _,\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 252..304,\n        ident: Ident {\n            span: 262..263,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 274..292,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 274..277,\n                            sym: \"bar\",\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: 305..355,\n        ident: Ident {\n            span: 315..316,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 327..346,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 327..330,\n                            sym: \"baz\",\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: 352..369,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 352..361,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 366..389,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 366..381,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 386..409,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 386..401,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 406..424,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 406..421,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 229..518,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 236..238,\n                sym: \"M2\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                    _,\n                    _,\n                    _,\n                    _,\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 562..623,\n        ident: Ident {\n            span: 572..573,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 588..610,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 588..591,\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: 620..641,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 620..629,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 638..665,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 638..653,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 662..683,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 662..677,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 535..685,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 542..544,\n                sym: \"M3\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                    _,\n                    _,\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 512..693,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 519..521,\n                sym: \"M2\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 737..798,\n        ident: Ident {\n            span: 747..748,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 763..785,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 763..766,\n                            sym: \"bar\",\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: 795..817,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 795..804,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 814..840,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 814..840,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 837..864,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 837..852,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 861..882,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 861..876,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 710..884,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 717..719,\n                sym: \"M3\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                    _,\n                    _,\n                    _,\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 687..892,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 694..696,\n                sym: \"M2\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 936..998,\n        ident: Ident {\n            span: 946..947,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 962..985,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 962..965,\n                            sym: \"baz\",\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: 995..1016,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 995..1004,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1013..1039,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1013..1039,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1036..1063,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1036..1051,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1060..1081,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1060..1075,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 909..1083,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 916..918,\n                sym: \"M3\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                    _,\n                    _,\n                    _,\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 886..1083,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 893..895,\n                sym: \"M2\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 180..181,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 194..196,\n        sym: \"r1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 197..205,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 214..216,\n        sym: \"r2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 217..225,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 356..357,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 370..372,\n        sym: \"r1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 373..381,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 390..392,\n        sym: \"r2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 393..401,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 410..412,\n        sym: \"r3\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 413..421,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 624..625,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 642..644,\n        sym: \"r1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 645..653,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 666..668,\n        sym: \"r2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 669..677,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 799..800,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 818..820,\n        sym: \"r1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 821..840,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 841..843,\n        sym: \"r2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 844..852,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 865..867,\n        sym: \"r3\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 868..876,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 999..1000,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1017..1019,\n        sym: \"r1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1020..1039,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1040..1042,\n        sym: \"r2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1043..1051,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1064..1066,\n        sym: \"r3\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1067..1075,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 199..200,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 200..205,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 201..204,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 219..220,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 220..225,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 221..224,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 375..376,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 376..381,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 377..380,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 395..396,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 396..401,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 397..400,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 415..416,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 416..421,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 417..420,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 647..648,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 648..653,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 649..652,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 671..672,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 672..677,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 673..676,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 823..824,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 824..840,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 825..828,\n                sym: \"foo\",\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: \"bar\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 870..871,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 871..876,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 872..875,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1022..1023,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1023..1039,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1024..1027,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1045..1046,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1046..1051,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1047..1050,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1069..1070,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1070..1075,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1071..1074,\n                sym: \"baz\",\n            },\n        ),\n    },\n)"
  ],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 123..179,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 245..304,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 298..355,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 555..623,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 528..685,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 730..798,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 703..884,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 929..998,\n        decl: _,\n    },\n)",
    "ExportDecl(\n    ExportDecl {\n        span: 902..1083,\n        decl: _,\n    },\n)"
  ],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Boolean,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Boolean,\n)"
  ]
}
