{
  "programs": [
    "Program {\n    span: 187..1511,\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)",
    "Return(\n    ReturnStmt {\n        span: 344..370,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Empty(\n    EmptyStmt {\n        span: 424..425,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 448..457,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 554..570,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 756..761,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 930..946,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1142..1158,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1273..1275,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1292..1301,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1331..1336,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1353..1362,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1510..1511,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 220..314,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 220..314,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 306..379,\n        ident: Ident {\n            span: 315..319,\n            sym: \"foo4\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 376..400,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 376..392,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 187..425,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 194..213,\n                sym: \"NonGenericParameter\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                    _,\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "Var(\n    VarDecl {\n        span: 430..449,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 430..447,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 481..579,\n        ident: Ident {\n            span: 490..494,\n            sym: \"foo5\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 576..666,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 576..666,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 663..728,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 663..680,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 451..787,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 458..474,\n                sym: \"GenericParameter\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                    _,\n                    _,\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "Var(\n    VarDecl {\n        span: 784..858,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 784..801,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 850..955,\n        ident: Ident {\n            span: 859..863,\n            sym: \"foo6\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 952..986,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 952..969,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 983..1065,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 983..1000,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1057..1167,\n        ident: Ident {\n            span: 1066..1070,\n            sym: \"foo7\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1164..1244,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1164..1185,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1359..1439,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1359..1380,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1436..1511,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1436..1458,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 224..225,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 320..322,\n        sym: \"cb\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 380..381,\n        sym: \"r\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 382..392,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 434..436,\n        sym: \"r2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 437..447,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 498..500,\n        sym: \"cb\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 580..581,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 667..669,\n        sym: \"r5\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 670..680,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 788..790,\n        sym: \"r7\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 791..801,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 867..869,\n        sym: \"cb\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 956..958,\n        sym: \"r8\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 959..969,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 987..989,\n        sym: \"r9\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 990..1000,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1074..1075,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1079..1081,\n        sym: \"cb\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1168..1171,\n        sym: \"r13\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1172..1185,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1363..1366,\n        sym: \"r14\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1367..1380,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1440..1443,\n        sym: \"r15\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1444..1458,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 355..357,\n        sym: \"cb\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 358..362,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 357..364,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 351..364,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 384..388,\n        sym: \"foo4\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 389..390,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 388..392,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 439..443,\n        sym: \"foo4\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 444..445,\n        sym: \"b\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 443..447,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 561..563,\n        sym: \"cb\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 672..676,\n        sym: \"foo5\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 677..678,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 676..680,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "New(\n    NewExpr {\n        span: 756..761,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 793..797,\n        sym: \"foo5\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 798..799,\n        sym: \"b\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 797..801,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 937..939,\n        sym: \"cb\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 961..965,\n        sym: \"foo6\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 966..967,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 965..969,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 992..996,\n        sym: \"foo6\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 997..998,\n        sym: \"b\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 996..1000,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1149..1151,\n        sym: \"cb\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1174..1178,\n        sym: \"foo7\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1179..1180,\n            value: 1.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1182..1183,\n        sym: \"b\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1178..1185,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\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)",
    "New(\n    NewExpr {\n        span: 1331..1336,\n        callee: _,\n        args: [],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1369..1373,\n        sym: \"foo7\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1374..1375,\n            value: 1.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1377..1378,\n        sym: \"c\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1373..1380,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1446..1450,\n        sym: \"foo7\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1451..1452,\n            value: 1.0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1454..1456,\n        sym: \"c2\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1450..1458,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": []
}
