{
  "programs": [
    "Program {\n    span: 202..2962,\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}"
  ],
  "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)",
    "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)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 202..259,\n        ident: Ident {\n            span: 212..220,\n            sym: \"SomeType\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 227..249,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 228..238,\n                        name: Some(\n                            Ident {\n                                span: 228..229,\n                                sym: \"a\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 250..309,\n        ident: Ident {\n            span: 260..269,\n            sym: \"SomeType2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 276..298,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 277..287,\n                        name: Some(\n                            Ident {\n                                span: 277..278,\n                                sym: \"a\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 300..368,\n        ident: Ident {\n            span: 310..337,\n            sym: \"IWithNoStringIndexSignature\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 344..358,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 344..347,\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: 359..425,\n        ident: Ident {\n            span: 369..396,\n            sym: \"IWithNoNumberIndexSignature\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 403..415,\n                kind: Property,\n                name: Some(\n                    Num(\n                        NumberLit {\n                            span: 403..404,\n                            value: 0.0,\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: 416..493,\n        ident: Ident {\n            span: 426..452,\n            sym: \"IWithStringIndexSignature1\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 459..483,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 460..461,\n                        name: Some(\n                            Ident {\n                                span: 460..461,\n                                sym: \"a\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 484..562,\n        ident: Ident {\n            span: 494..520,\n            sym: \"IWithStringIndexSignature2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 527..552,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 528..529,\n                        name: Some(\n                            Ident {\n                                span: 528..529,\n                                sym: \"a\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 553..630,\n        ident: Ident {\n            span: 563..589,\n            sym: \"IWithNumberIndexSignature1\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 596..620,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 597..598,\n                        name: Some(\n                            Ident {\n                                span: 597..598,\n                                sym: \"a\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 621..1618,\n        ident: Ident {\n            span: 631..657,\n            sym: \"IWithNumberIndexSignature2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 664..689,\n                kind: Index,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 665..666,\n                        name: Some(\n                            Ident {\n                                span: 665..666,\n                                sym: \"a\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                ],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1615..1721,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1615..1695,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1718..1885,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1718..1800,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1882..1970,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1882..1965,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1967..2084,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1967..2058,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2081..2399,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2081..2161,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2396..2503,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2396..2477,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2500..2666,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2500..2581,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2663..2749,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2663..2745,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2746..2863,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2746..2837,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2860..2962,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2860..2940,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 1619..1620,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1686..1687,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1722..1723,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1791..1792,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1886..1887,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1971..1973,\n        sym: \"x2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2038..2039,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2085..2087,\n        sym: \"x2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2152..2153,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2400..2402,\n        sym: \"x3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2468..2469,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2504..2506,\n        sym: \"x3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2572..2573,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2667..2669,\n        sym: \"x3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2750..2752,\n        sym: \"x4\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2817..2818,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2864..2866,\n        sym: \"x4\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2931..2932,\n        sym: \"a\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 1691..1692,\n        sym: \"a\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1686..1694,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 1681..1695,\n        props: [\n            KeyValueProp {\n                span: 1683..1694,\n                key: Ident(\n                    Ident {\n                        span: 1683..1684,\n                        sym: \"z\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1796..1797,\n        sym: \"a\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1791..1799,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 1784..1800,\n        props: [\n            KeyValueProp {\n                span: 1786..1799,\n                key: Ident(\n                    Ident {\n                        span: 1786..1789,\n                        sym: \"foo\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1955..1962,\n            value: \"hello\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 1948..1965,\n        props: [\n            KeyValueProp {\n                span: 1950..1964,\n                key: Ident(\n                    Ident {\n                        span: 1950..1953,\n                        sym: \"foo\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2043..2044,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2044..2054,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2045..2053,\n                sym: \"toString\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2053..2057,\n        callee: _,\n        args: [],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2038..2057,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 2033..2058,\n        props: [\n            KeyValueProp {\n                span: 2035..2057,\n                key: Ident(\n                    Ident {\n                        span: 2035..2036,\n                        sym: \"z\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2157..2158,\n        sym: \"a\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2152..2160,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 2147..2161,\n        props: [\n            KeyValueProp {\n                span: 2149..2160,\n                key: Ident(\n                    Ident {\n                        span: 2149..2150,\n                        sym: \"z\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2473..2474,\n        sym: \"a\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2468..2476,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 2463..2477,\n        props: [\n            KeyValueProp {\n                span: 2465..2476,\n                key: Num(\n                    NumberLit {\n                        span: 2465..2466,\n                        value: 1.0,\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2577..2578,\n        sym: \"a\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2572..2580,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 2567..2581,\n        props: [\n            KeyValueProp {\n                span: 2569..2580,\n                key: Num(\n                    NumberLit {\n                        span: 2569..2570,\n                        value: 0.0,\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2735..2742,\n            value: \"hello\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 2730..2745,\n        props: [\n            KeyValueProp {\n                span: 2732..2744,\n                key: Num(\n                    NumberLit {\n                        span: 2732..2733,\n                        value: 0.0,\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2822..2823,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2823..2833,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 2824..2832,\n                sym: \"toString\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2832..2836,\n        callee: _,\n        args: [],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2817..2836,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 2812..2837,\n        props: [\n            KeyValueProp {\n                span: 2814..2836,\n                key: Num(\n                    NumberLit {\n                        span: 2814..2815,\n                        value: 1.0,\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2936..2937,\n        sym: \"a\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2931..2939,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 2926..2940,\n        props: [\n            KeyValueProp {\n                span: 2928..2939,\n                key: Num(\n                    NumberLit {\n                        span: 2928..2929,\n                        value: 1.0,\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 472..481,\n        name: Ident {\n            span: 472..481,\n            sym: \"SomeType\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 540..550,\n        name: Ident {\n            span: 540..550,\n            sym: \"SomeType2\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 609..618,\n        name: Ident {\n            span: 609..618,\n            sym: \"SomeType\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 677..687,\n        name: Ident {\n            span: 677..687,\n            sym: \"SomeType2\",\n        },\n        type_args: [],\n    },\n)"
  ]
}
