{
  "programs": [
    "Program {\n    span: 1..719,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 136..151,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 385..400,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 623..638,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "Class(\n    ClassDecl {\n        span: 44..142,\n        ident: Ident {\n            span: 50..51,\n            sym: \"C\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 21..159,\n        ident: Ident {\n            span: 30..31,\n            sym: \"f\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 156..176,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 156..168,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 173..203,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 173..195,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 200..220,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 200..212,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 217..231,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 217..229,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1..241,\n        ident: Ident {\n            span: 10..12,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 285..391,\n        ident: Ident {\n            span: 291..292,\n            sym: \"C\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 253..408,\n        ident: Ident {\n            span: 262..263,\n            sym: \"f\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 405..427,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 405..419,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 424..450,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 424..442,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 447..467,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 447..459,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 464..478,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 464..476,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 233..488,\n        ident: Ident {\n            span: 242..244,\n            sym: \"f2\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 543..629,\n        ident: Ident {\n            span: 549..550,\n            sym: \"C\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 500..646,\n        ident: Ident {\n            span: 509..510,\n            sym: \"f\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 643..669,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 643..661,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 666..690,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 666..682,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 687..707,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 687..699,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 704..718,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 704..716,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 480..719,\n        ident: Ident {\n            span: 489..491,\n            sym: \"f3\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 85..86,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 103..104,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 160..161,\n        sym: \"C\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 162..168,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 177..178,\n        sym: \"v\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 179..195,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 204..205,\n        sym: \"x\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 206..212,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 221..222,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 223..229,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 264..265,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 352..353,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 409..410,\n        sym: \"C\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 411..419,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 428..429,\n        sym: \"v\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 430..442,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 451..452,\n        sym: \"x\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 453..459,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 468..469,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 470..476,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 511..512,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 522..523,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 647..648,\n        sym: \"C\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 649..661,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 670..671,\n        sym: \"v\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 672..682,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 691..692,\n        sym: \"x\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 693..699,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 708..709,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 710..716,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 143..144,\n        sym: \"C\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 164..165,\n        sym: \"f\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 165..168,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 185..186,\n        sym: \"C\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 187..189,\n            value: 10.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 191..193,\n            value: 20.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 186..195,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 181..195,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 208..209,\n        sym: \"v\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 209..212,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 210..211,\n                sym: \"x\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 225..226,\n        sym: \"v\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 226..229,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 227..228,\n                sym: \"y\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 318..319,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 392..393,\n        sym: \"C\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 413..414,\n        sym: \"f\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 415..417,\n            value: 10.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 414..419,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 436..437,\n        sym: \"C\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 438..440,\n            value: 20.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 437..442,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 432..442,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 455..456,\n        sym: \"v\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 456..459,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 457..458,\n                sym: \"x\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 472..473,\n        sym: \"v\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 473..476,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 474..475,\n                sym: \"y\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 576..577,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 602..603,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 630..631,\n        sym: \"C\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 651..652,\n        sym: \"f\",\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 653..655,\n            value: 10.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 657..659,\n            value: 20.0,\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 652..661,\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: 678..679,\n        sym: \"C\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 679..682,\n        callee: _,\n        args: [],\n    },\n)",
    "New(\n    NewExpr {\n        span: 674..682,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 695..696,\n        sym: \"v\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 696..699,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 697..698,\n                sym: \"x\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 712..713,\n        sym: \"v\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 713..716,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 714..715,\n                sym: \"y\",\n            },\n        ),\n    },\n)"
  ],
  "module_decls": [],
  "functions": [
    "Function {\n    span: 66..127,\n    params: [\n        Param {\n            span: 78..95,\n            decorators: [],\n            pat: _,\n        },\n        Param {\n            span: 96..113,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}",
    "Function {\n    span: 333..376,\n    params: [\n        Param {\n            span: 345..362,\n            decorators: [],\n            pat: _,\n        },\n    ],\n    body: [],\n    is_async: false,\n    is_generator: false,\n}"
  ],
  "classes": [
    "Class {\n    span: 44..142,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 50..51,\n            sym: \"C\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n    ],\n}",
    "Class {\n    span: 285..391,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 291..292,\n            sym: \"C\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n    ],\n}",
    "Class {\n    span: 543..629,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 549..550,\n            sym: \"C\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n    ],\n}"
  ],
  "class_members": [
    "Method(\n    ClassMethod {\n        span: 66..127,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 66..77,\n                sym: \"constructor\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Constructor,\n    },\n)",
    "Prop(\n    ClassProp {\n        span: 307..344,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 314..315,\n                sym: \"x\",\n            },\n        ),\n        value: Some(\n            _,\n        ),\n        is_static: false,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 333..376,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 333..344,\n                sym: \"constructor\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Constructor,\n    },\n)",
    "Prop(\n    ClassProp {\n        span: 565..597,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 572..573,\n                sym: \"x\",\n            },\n        ),\n        value: Some(\n            _,\n        ),\n        is_static: false,\n    },\n)",
    "Prop(\n    ClassProp {\n        span: 591..614,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 598..599,\n                sym: \"y\",\n            },\n        ),\n        value: Some(\n            _,\n        ),\n        is_static: false,\n    },\n)"
  ],
  "jsx_elements": [],
  "ts_types": []
}
