{
  "programs": [
    "Program {\n    span: 96..776,\n    kind: Script,\n    body: [\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)",
    "Return(\n    ReturnStmt {\n        span: 279..290,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 371..388,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 385..446,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 443..460,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 457..502,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 499..559,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 607..618,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 709..726,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 723..740,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 737..776,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 96..133,\n        ident: Ident {\n            span: 106..107,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 110..123,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 110..113,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 124..172,\n        ident: Ident {\n            span: 134..135,\n            sym: \"B\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [\n            Ident {\n                span: 144..147,\n                sym: \"A\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 148..162,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 148..151,\n                            sym: \"bar\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 163..206,\n        ident: Ident {\n            span: 173..174,\n            sym: \"C\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [\n            Ident {\n                span: 183..186,\n                sym: \"B\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 187..202,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 187..190,\n                            sym: \"baz\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 203..216,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 203..212,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 213..226,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 213..222,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 223..242,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 223..232,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 234..374,\n        ident: Ident {\n            span: 243..246,\n            sym: \"foo\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 551..712,\n        ident: Ident {\n            span: 560..564,\n            sym: \"foo2\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 207..208,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 217..218,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 227..228,\n        sym: \"c\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 256..257,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 262..263,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 268..269,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 504..505,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 515..516,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 527..528,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 584..585,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 590..591,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 596..597,\n        sym: \"z\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 286..287,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 371..374,\n        sym: \"foo\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 375..376,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 378..379,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 381..382,\n            value: 3.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 374..384,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 385..388,\n        sym: \"foo\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 394..395,\n            value: 1.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 389..398,\n        props: [\n            KeyValueProp {\n                span: 391..397,\n                key: Ident(\n                    Ident {\n                        span: 391..392,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 404..405,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 410..412,\n            value: \"\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 399..415,\n        props: [\n            KeyValueProp {\n                span: 401..406,\n                key: Ident(\n                    Ident {\n                        span: 401..402,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 407..414,\n                key: Ident(\n                    Ident {\n                        span: 407..408,\n                        sym: \"y\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 421..422,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 427..429,\n            value: \"\",\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 434..438,\n            value: true,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 416..441,\n        props: [\n            KeyValueProp {\n                span: 418..423,\n                key: Ident(\n                    Ident {\n                        span: 418..419,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 424..430,\n                key: Ident(\n                    Ident {\n                        span: 424..425,\n                        sym: \"y\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 431..440,\n                key: Ident(\n                    Ident {\n                        span: 431..432,\n                        sym: \"z\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 388..442,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 443..446,\n        sym: \"foo\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 447..448,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 450..451,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 453..454,\n        sym: \"c\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 446..456,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 457..460,\n        sym: \"foo\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 461..462,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 464..465,\n        sym: \"b\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 474..475,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 482..484,\n            value: \"\",\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 490..494,\n            value: true,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 467..497,\n        props: [\n            KeyValueProp {\n                span: 469..476,\n                key: Ident(\n                    Ident {\n                        span: 469..472,\n                        sym: \"foo\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 477..485,\n                key: Ident(\n                    Ident {\n                        span: 477..480,\n                        sym: \"bar\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 486..496,\n                key: Ident(\n                    Ident {\n                        span: 486..488,\n                        sym: \"hm\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 460..498,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 499..502,\n        sym: \"foo\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 503..525,\n        params: [\n            _,\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 526..537,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 538..548,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 502..549,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 614..615,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 709..712,\n        sym: \"foo\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 713..714,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 716..717,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 719..720,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 712..722,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 723..726,\n        sym: \"foo\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 727..728,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 730..731,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 733..734,\n        sym: \"c\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 726..736,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 737..740,\n        sym: \"foo\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 741..742,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 744..745,\n        sym: \"b\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 754..755,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 762..764,\n            value: \"\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 770..772,\n            value: \"\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 747..775,\n        props: [\n            KeyValueProp {\n                span: 749..756,\n                key: Ident(\n                    Ident {\n                        span: 749..752,\n                        sym: \"foo\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 757..765,\n                key: Ident(\n                    Ident {\n                        span: 757..760,\n                        sym: \"bar\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 766..774,\n                key: Ident(\n                    Ident {\n                        span: 766..768,\n                        sym: \"hm\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Call(\n    CallExpr {\n        span: 740..776,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    Number,\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Boolean,\n)"
  ]
}
