{
  "programs": [
    "Program {\n    span: 61..612,\n    kind: Script,\n    body: [\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)",
    "Expr(\n    ExprStmt {\n        span: 327..349,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 348..370,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 369..392,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 391..424,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 423..456,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 455..489,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 488..530,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 529..571,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 570..612,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "TsInterface(\n    TsInterfaceDecl {\n        span: 61..252,\n        ident: Ident {\n            span: 71..72,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 79..212,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 79..82,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 209..243,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 209..212,\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: 253..276,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 253..276,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 277..295,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 277..295,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 296..314,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 296..314,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 315..328,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 315..328,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 259..265,\n        sym: \"result\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 283..284,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 302..303,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 321..322,\n        sym: \"c\",\n    },\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 327..328,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 328..336,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 329..332,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 337..343,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 343..349,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 344..347,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 333..349,\n        left: _,\n        op: AndAssign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 348..349,\n        sym: \"b\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 349..357,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 350..353,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 358..364,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 364..370,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 365..368,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 354..370,\n        left: _,\n        op: OrAssign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 369..370,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 370..378,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 371..374,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 379..385,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 385..392,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 386..389,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 375..392,\n        left: _,\n        op: NullishAssign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 391..392,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 392..397,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 393..396,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 397..402,\n            value: \"baz\",\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 396..407,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 408..414,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 414..419,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 415..418,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 418..424,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 419..422,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 404..424,\n        left: _,\n        op: AndAssign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 423..424,\n        sym: \"b\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 424..429,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 425..428,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 429..434,\n            value: \"baz\",\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 428..439,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 440..446,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 446..451,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 447..450,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 450..456,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 451..454,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 436..456,\n        left: _,\n        op: OrAssign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 455..456,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 456..461,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 457..460,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 461..466,\n            value: \"baz\",\n        },\n    ),\n)",
    "Member(\n    MemberExpr {\n        span: 460..471,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 472..478,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 478..483,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 479..482,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 482..489,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 483..486,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 468..489,\n        left: _,\n        op: NullishAssign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 488..489,\n        sym: \"a\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 489..494,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 490..493,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 493..498,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 494..497,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 497..500,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 499..507,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 500..503,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 508..514,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 514..519,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 515..518,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 518..523,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 519..522,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 522..525,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 524..530,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 525..528,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 504..530,\n        left: _,\n        op: AndAssign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 529..530,\n        sym: \"b\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 530..535,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 531..534,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 534..539,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 535..538,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 538..541,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 540..548,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 541..544,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 549..555,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 555..560,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 556..559,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 559..564,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 560..563,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 563..566,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 565..571,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 566..569,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 545..571,\n        left: _,\n        op: OrAssign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 570..571,\n        sym: \"c\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 571..576,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 572..575,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 575..580,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 576..579,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 579..582,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 581..589,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 582..585,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 590..596,\n        sym: \"result\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 596..601,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 597..600,\n                sym: \"foo\",\n            },\n        ),\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 600..605,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 601..604,\n                sym: \"bar\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 604..607,\n        callee: _,\n        args: [],\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 606..612,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 607..610,\n                sym: \"baz\",\n            },\n        ),\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 586..612,\n        left: _,\n        op: NullishAssign,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Lit(\n    Num(\n        NumberLit {\n            span: 120..121,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 124..125,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 128..130,\n            value: 42.0,\n        },\n    ),\n)",
    "Keyword(\n    Undefined,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 145..147,\n            value: \"\",\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 120..157,\n        types: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 101..169,\n        members: [\n            TsTypeMember {\n                span: 115..157,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 115..118,\n                            sym: \"baz\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 171..172,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 175..176,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 179..181,\n            value: 42.0,\n        },\n    ),\n)",
    "Keyword(\n    Undefined,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 196..198,\n            value: \"\",\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 171..204,\n        types: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 84..212,\n        members: [\n            TsTypeMember {\n                span: 94..169,\n                kind: Method,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 94..97,\n                            sym: \"bar\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 166..204,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 166..169,\n                            sym: \"baz\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 214..215,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 218..219,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 222..224,\n            value: 42.0,\n        },\n    ),\n)",
    "Keyword(\n    Undefined,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 239..241,\n            value: \"\",\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 214..243,\n        types: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)"
  ]
}
