{
  "programs": [
    "Program {\n    span: 111..727,\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        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 191..199,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 198..215,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 290..298,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 297..306,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 305..313,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 312..322,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 321..342,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 341..355,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 381..393,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 354..395,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 394..415,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 414..428,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 454..466,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 427..477,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 571..580,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 579..588,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 587..610,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 636..648,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 609..650,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 649..658,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 657..666,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 665..688,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 714..726,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 687..727,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 111..153,\n        ident: Ident {\n            span: 121..122,\n            sym: \"T\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 129..149,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 130..140,\n                        name: Some(\n                            Ident {\n                                span: 130..131,\n                                sym: \"x\",\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: 150..163,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 150..159,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 160..192,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 160..189,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 206..250,\n        ident: Ident {\n            span: 216..217,\n            sym: \"S\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 224..246,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 225..235,\n                        name: Some(\n                            Ident {\n                                span: 225..226,\n                                sym: \"x\",\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: 247..260,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 247..256,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 257..291,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 257..289,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 468..511,\n        ident: Ident {\n            span: 478..480,\n            sym: \"S2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 487..507,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 488..498,\n                        name: Some(\n                            Ident {\n                                span: 488..489,\n                                sym: \"x\",\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: 508..523,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 508..519,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 520..572,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 520..550,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 154..155,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 164..165,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 191..192,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 198..199,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 251..252,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 261..263,\n        sym: \"a2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 290..291,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 297..298,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 305..306,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 312..313,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 329..330,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 321..322,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 341..342,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 368..369,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 354..355,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 402..403,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 394..395,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 414..415,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 441..442,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 427..428,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 512..514,\n        sym: \"s2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 524..526,\n        sym: \"a3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 571..572,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 579..580,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 592..593,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 587..588,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 623..624,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 609..610,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 649..650,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 657..658,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 670..671,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 665..666,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 701..702,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 687..688,\n        sym: \"a\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 195..196,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 193..197,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 202..203,\n        sym: \"t\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 200..204,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 294..295,\n        sym: \"s\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 292..296,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 301..303,\n        sym: \"a2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 299..304,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 309..310,\n        sym: \"s\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 307..311,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 316..318,\n        sym: \"a2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 314..319,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 338..339,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 328..340,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 323..340,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 351..352,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 345..353,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 343..353,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 388..390,\n            value: \"\",\n        },\n    ),\n)",
    "Function(\n    _,\n)",
    "Assign(\n    AssignExpr {\n        span: 356..395,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 411..412,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 401..413,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 396..413,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 424..425,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 418..426,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 416..426,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 461..463,\n            value: \"\",\n        },\n    ),\n)",
    "Function(\n    _,\n)",
    "Assign(\n    AssignExpr {\n        span: 429..477,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 575..577,\n        sym: \"s2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 573..578,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 583..585,\n        sym: \"a3\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 581..586,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 606..607,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 591..608,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 589..608,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 643..645,\n            value: \"\",\n        },\n    ),\n)",
    "Function(\n    _,\n)",
    "Assign(\n    AssignExpr {\n        span: 611..650,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 653..655,\n        sym: \"s2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 651..656,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 661..663,\n        sym: \"a3\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 659..664,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 684..685,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 669..686,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 667..686,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 721..723,\n            value: \"\",\n        },\n    ),\n)",
    "Function(\n    _,\n)",
    "Assign(\n    AssignExpr {\n        span: 689..727,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 358..395,\n    params: [\n        Param {\n            span: 358..358,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 431..477,\n    params: [\n        Param {\n            span: 431..431,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 613..650,\n    params: [\n        Param {\n            span: 613..613,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 691..727,\n    params: [\n        Param {\n            span: 691..691,\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)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Void,\n)"
  ]
}
