{
  "programs": [
    "Program {\n    span: 1..2146,\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}"
  ],
  "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)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1830..1845,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1979..1994,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 1..21,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1..17,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 18..38,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 18..34,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 35..85,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 35..81,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 82..115,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 82..111,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 112..145,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 112..141,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 142..219,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 142..215,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 216..773,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 216..279,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 770..856,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 770..852,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 853..929,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 853..925,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 926..1027,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 926..1023,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1024..1148,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1024..1144,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1145..1288,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1145..1284,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1285..1454,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1285..1444,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 1445..1539,\n        ident: Ident {\n            span: 1455..1458,\n            sym: \"I11\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1465..1529,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1465..1496,\n                            sym: \"commonMethodDifferentReturnType\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 1497..1507,\n                        name: Some(\n                            Ident {\n                                span: 1497..1498,\n                                sym: \"a\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 1508..1518,\n                        name: Some(\n                            Ident {\n                                span: 1508..1509,\n                                sym: \"b\",\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: 1530..1618,\n        ident: Ident {\n            span: 1540..1543,\n            sym: \"I21\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 1550..1614,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1550..1581,\n                            sym: \"commonMethodDifferentReturnType\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 1582..1592,\n                        name: Some(\n                            Ident {\n                                span: 1582..1583,\n                                sym: \"a\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 1593..1603,\n                        name: Some(\n                            Ident {\n                                span: 1593..1594,\n                                sym: \"b\",\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..1632,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1615..1628,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1629..1646,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1629..1642,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1643..1677,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1643..1673,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1674..1708,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1674..1704,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1801..1836,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1801..1821,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1705..1853,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1705..1849,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1946..1985,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1946..1970,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1850..2002,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1850..1998,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1999..2036,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1999..2032,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2033..2146,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2033..2146,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 5..8,\n        sym: \"str\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 22..25,\n        sym: \"num\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 39..50,\n        sym: \"strOrNumber\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 86..92,\n        sym: \"objStr\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 116..122,\n        sym: \"objNum\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 146..158,\n        sym: \"objStrOrNum1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 220..232,\n        sym: \"objStrOrNum2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 774..786,\n        sym: \"objStrOrNum3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 857..869,\n        sym: \"objStrOrNum4\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 930..942,\n        sym: \"objStrOrNum5\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1028..1040,\n        sym: \"objStrOrNum6\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1149..1161,\n        sym: \"objStrOrNum7\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1289..1301,\n        sym: \"objStrOrNum8\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1619..1622,\n        sym: \"i11\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1633..1636,\n        sym: \"i21\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1647..1655,\n        sym: \"i11Ori21\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1678..1686,\n        sym: \"i11Ori21\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1709..1717,\n        sym: \"i11Ori21\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1782..1783,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1785..1786,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1805..1806,\n        sym: \"z\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1807..1821,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1854..1862,\n        sym: \"i11Ori21\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1927..1928,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1930..1931,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1950..1951,\n        sym: \"z\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1952..1970,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2003..2014,\n        sym: \"strOrNumber\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2037..2045,\n        sym: \"i11Ori21\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2122..2123,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2125..2126,\n        sym: \"b\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 70..73,\n        sym: \"str\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 77..80,\n        sym: \"num\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 74..81,\n        op: LogicalOr,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 198..204,\n        sym: \"objStr\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 208..214,\n        sym: \"objNum\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 205..215,\n        op: LogicalOr,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 262..268,\n        sym: \"objStr\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 272..278,\n        sym: \"objNum\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 269..279,\n        op: LogicalOr,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 838..849,\n        sym: \"strOrNumber\",\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 826..852,\n        props: [\n            KeyValueProp {\n                span: 832..851,\n                key: Ident(\n                    Ident {\n                        span: 832..836,\n                        sym: \"prop\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 911..922,\n        sym: \"strOrNumber\",\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 899..925,\n        props: [\n            KeyValueProp {\n                span: 905..924,\n                key: Ident(\n                    Ident {\n                        span: 905..909,\n                        sym: \"prop\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1009..1020,\n        sym: \"strOrNumber\",\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 1001..1023,\n        props: [\n            KeyValueProp {\n                span: 1003..1022,\n                key: Ident(\n                    Ident {\n                        span: 1003..1007,\n                        sym: \"prop\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1111..1122,\n        sym: \"strOrNumber\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1138..1141,\n        sym: \"str\",\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 1099..1144,\n        props: [\n            KeyValueProp {\n                span: 1105..1123,\n                key: Ident(\n                    Ident {\n                        span: 1105..1109,\n                        sym: \"prop\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 1128..1143,\n                key: Ident(\n                    Ident {\n                        span: 1128..1136,\n                        sym: \"anotherP\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1251..1262,\n        sym: \"strOrNumber\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1278..1281,\n        sym: \"str\",\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 1239..1284,\n        props: [\n            KeyValueProp {\n                span: 1245..1263,\n                key: Ident(\n                    Ident {\n                        span: 1245..1249,\n                        sym: \"prop\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 1268..1283,\n                key: Ident(\n                    Ident {\n                        span: 1268..1276,\n                        sym: \"anotherP\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1391..1402,\n        sym: \"strOrNumber\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1418..1421,\n        sym: \"str\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1438..1441,\n        sym: \"num\",\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 1379..1444,\n        props: [\n            KeyValueProp {\n                span: 1385..1403,\n                key: Ident(\n                    Ident {\n                        span: 1385..1389,\n                        sym: \"prop\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 1408..1422,\n                key: Ident(\n                    Ident {\n                        span: 1408..1416,\n                        sym: \"anotherP\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 1427..1443,\n                key: Ident(\n                    Ident {\n                        span: 1427..1436,\n                        sym: \"anotherP1\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1669..1672,\n        sym: \"i11\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1700..1703,\n        sym: \"i21\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1809..1810,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1810..1818,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1811..1817,\n                sym: \"charAt\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1818..1819,\n        sym: \"b\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1817..1821,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1837..1838,\n        sym: \"z\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1781..1846,\n        params: [\n            _,\n            _,\n        ],\n        body: Block(\n            [\n                _,\n                _,\n            ],\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 1731..1849,\n        props: [\n            KeyValueProp {\n                span: 1748..1846,\n                key: Ident(\n                    Ident {\n                        span: 1748..1779,\n                        sym: \"commonMethodDifferentReturnType\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1954..1955,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1955..1967,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1956..1966,\n                sym: \"charCodeAt\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1967..1968,\n        sym: \"b\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1966..1970,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1986..1987,\n        sym: \"z\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 1926..1995,\n        params: [\n            _,\n            _,\n        ],\n        body: Block(\n            [\n                _,\n                _,\n            ],\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 1876..1998,\n        props: [\n            KeyValueProp {\n                span: 1893..1995,\n                key: Ident(\n                    Ident {\n                        span: 1893..1924,\n                        sym: \"commonMethodDifferentReturnType\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2131..2142,\n        sym: \"strOrNumber\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2121..2143,\n        params: [\n            _,\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 2059..2146,\n        props: [\n            KeyValueProp {\n                span: 2088..2143,\n                key: Ident(\n                    Ident {\n                        span: 2088..2119,\n                        sym: \"commonMethodDifferentReturnType\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)"
  ]
}
