{
  "programs": [
    "Program {\n    span: 51..1431,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 310..328,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 381..399,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 459..462,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 461..466,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 480..555,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 623..700,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 740..751,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 838..915,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1035..1083,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1082..1145,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1144..1208,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1207..1313,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1312..1346,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1381..1430,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1345..1431,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 51..140,\n        ident: Ident {\n            span: 61..62,\n            sym: \"I\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 69..96,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 69..70,\n                            sym: \"n\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 84..130,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 84..96,\n                            sym: \"explicitThis\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 97..108,\n                        name: Some(\n                            Ident {\n                                span: 97..101,\n                                sym: \"this\",\n                            },\n                        ),\n                        ty: Some(\n                            _,\n                        ),\n                        is_rest: false,\n                        optional: false,\n                    },\n                    TsFnParam {\n                        span: 109..119,\n                        name: Some(\n                            Ident {\n                                span: 109..110,\n                                sym: \"m\",\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: 131..196,\n        ident: Ident {\n            span: 141..147,\n            sym: \"Unused\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 154..190,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 154..168,\n                            sym: \"implicitNoThis\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 169..179,\n                        name: Some(\n                            Ident {\n                                span: 169..170,\n                                sym: \"m\",\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: 463..481,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 463..479,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 552..758,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 552..754,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 755..772,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 755..768,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 769..922,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 769..922,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 919..946,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 919..942,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 943..997,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 943..957,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 994..1012,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 994..1008,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1009..1036,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1009..1034,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 467..468,\n        sym: \"c\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 469..479,\n        left: _,\n        right: _,\n    },\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 556..557,\n        sym: \"o\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 602..603,\n        sym: \"m\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 719..720,\n        sym: \"m\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 558..754,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 759..760,\n        sym: \"i\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 773..775,\n        sym: \"o2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 824..825,\n        sym: \"m\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 923..924,\n        sym: \"x\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 925..942,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 947..948,\n        sym: \"n\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 949..957,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 998..999,\n        sym: \"u\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1013..1014,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1015..1034,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1035..1036,\n        sym: \"n\",\n    },\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 1371..1372,\n        sym: \"m\",\n    },\n)",
    "Expr(\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    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 475..476,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 476..479,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 471..479,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 480..481,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 481..496,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 482..494,\n                sym: \"explicitVoid\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 497..498,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 498..512,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 499..511,\n                sym: \"explicitThis\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 495..512,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 569..572,\n            value: 101.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 630..631,\n        sym: \"m\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 634..638,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 638..641,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 639..640,\n                sym: \"n\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 640..648,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 641..647,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 632..648,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Function(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 747..748,\n        sym: \"m\",\n    },\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 560..754,\n        props: [\n            KeyValueProp {\n                span: 566..573,\n                key: Ident(\n                    Ident {\n                        span: 566..567,\n                        sym: \"n\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 578..701,\n                key: Ident(\n                    Ident {\n                        span: 578..590,\n                        sym: \"explicitThis\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 706..753,\n                key: Ident(\n                    Ident {\n                        span: 706..718,\n                        sym: \"implicitThis\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 766..767,\n        sym: \"o\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 790..794,\n            value: 1001.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 845..846,\n        sym: \"m\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 849..853,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 853..856,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 854..855,\n                sym: \"n\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 855..863,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 856..862,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 847..863,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 781..922,\n        props: [\n            KeyValueProp {\n                span: 787..795,\n                key: Ident(\n                    Ident {\n                        span: 787..788,\n                        sym: \"n\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 800..916,\n                key: Ident(\n                    Ident {\n                        span: 800..812,\n                        sym: \"explicitThis\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 927..928,\n        sym: \"i\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 928..942,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 929..941,\n                sym: \"explicitThis\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 951..952,\n        sym: \"x\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 953..955,\n            value: 12.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 952..957,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1017..1018,\n        sym: \"u\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1018..1034,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1019..1033,\n                sym: \"implicitNoThis\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1039..1040,\n        sym: \"y\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1041..1043,\n            value: 12.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 1040..1045,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1037..1045,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1082..1083,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1083..1098,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1084..1096,\n                sym: \"explicitVoid\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1099..1100,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1100..1145,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1101..1113,\n                sym: \"implicitThis\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1097..1145,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1144..1145,\n        sym: \"o\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1145..1160,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1146..1158,\n                sym: \"implicitThis\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1161..1162,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1162..1176,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1163..1175,\n                sym: \"implicitThis\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1159..1176,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1207..1208,\n        sym: \"o\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1208..1223,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1209..1221,\n                sym: \"implicitThis\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1224..1225,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1225..1239,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1226..1238,\n                sym: \"explicitThis\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1222..1239,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1312..1313,\n        sym: \"o\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1313..1328,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1314..1326,\n                sym: \"implicitThis\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1329..1330,\n        sym: \"i\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1330..1344,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1331..1343,\n                sym: \"explicitThis\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1327..1344,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1345..1346,\n        sym: \"i\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1346..1361,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1347..1359,\n                sym: \"explicitThis\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1388..1392,\n        sym: \"this\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1392..1395,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1393..1394,\n                sym: \"n\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1394..1402,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1395..1401,\n                sym: \"length\",\n            },\n        ),\n    },\n)",
    "Function(\n    _,\n)",
    "Assign(\n    AssignExpr {\n        span: 1360..1431,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 592..701,\n    params: [\n        Param {\n            span: 592..592,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 706..753,\n    params: [\n        Param {\n            span: 719..729,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 814..916,\n    params: [\n        Param {\n            span: 814..814,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 1362..1431,\n    params: [\n        Param {\n            span: 1362..1362,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 103..108,\n        name: Ident {\n            span: 103..108,\n            sym: \"this\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Number,\n)"
  ]
}
