{
  "programs": [
    "Program {\n    span: 111..596,\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)",
    "Expr(\n    ExprStmt {\n        span: 199..207,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 206..223,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 306..314,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 313..322,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 321..329,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 328..346,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 440..449,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 448..457,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 456..479,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 505..517,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 478..519,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 518..527,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 526..535,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 534..557,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 583..595,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 556..596,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 111..157,\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..153,\n                kind: Construct,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 134..144,\n                        name: Some(\n                            Ident {\n                                span: 134..135,\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: 154..167,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 154..163,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 164..200,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 164..197,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 214..262,\n        ident: Ident {\n            span: 224..225,\n            sym: \"S\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 232..258,\n                kind: Construct,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 237..247,\n                        name: Some(\n                            Ident {\n                                span: 237..238,\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: 259..272,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 259..268,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 269..307,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 269..305,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 337..380,\n        ident: Ident {\n            span: 347..349,\n            sym: \"S2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 356..376,\n                kind: Call,\n                name: None,\n                optional: false,\n                readonly: false,\n                params: [\n                    TsFnParam {\n                        span: 357..367,\n                        name: Some(\n                            Ident {\n                                span: 357..358,\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: 377..392,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 377..388,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 389..441,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 389..419,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 158..159,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 168..169,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 199..200,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 206..207,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 263..264,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 273..275,\n        sym: \"a2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 306..307,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 313..314,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 321..322,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 328..329,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 381..383,\n        sym: \"s2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 393..395,\n        sym: \"a3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 440..441,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 448..449,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 461..462,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 456..457,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 492..493,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 478..479,\n        sym: \"t\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 518..519,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 526..527,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 539..540,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 534..535,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 570..571,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 556..557,\n        sym: \"a\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 203..204,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 201..205,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 210..211,\n        sym: \"t\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 208..212,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 310..311,\n        sym: \"s\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 308..312,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 317..319,\n        sym: \"a2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 315..320,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 325..326,\n        sym: \"s\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 323..327,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 332..334,\n        sym: \"a2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 330..335,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 444..446,\n        sym: \"s2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 442..447,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 452..454,\n        sym: \"a3\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 450..455,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 475..476,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 460..477,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 458..477,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 512..514,\n            value: \"\",\n        },\n    ),\n)",
    "Function(\n    _,\n)",
    "Assign(\n    AssignExpr {\n        span: 480..519,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 522..524,\n        sym: \"s2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 520..525,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 530..532,\n        sym: \"a3\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 528..533,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 553..554,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 538..555,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 536..555,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 590..592,\n            value: \"\",\n        },\n    ),\n)",
    "Function(\n    _,\n)",
    "Assign(\n    AssignExpr {\n        span: 558..596,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 482..519,\n    params: [\n        Param {\n            span: 482..482,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [\n        _,\n    ],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 560..596,\n    params: [\n        Param {\n            span: 560..560,\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)"
  ]
}
