{
  "programs": [
    "Program {\n    span: 2..192,\n    kind: Script,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 13..27,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 83..98,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 139..154,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 156..169,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 165..179,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 175..188,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 184..192,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "Class(\n    ClassDecl {\n        span: 2..21,\n        ident: Ident {\n            span: 8..9,\n            sym: \"A\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 22..52,\n        ident: Ident {\n            span: 28..29,\n            sym: \"B\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 44..108,\n        ident: Ident {\n            span: 53..57,\n            sym: \"NewA\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 100..160,\n        ident: Ident {\n            span: 109..113,\n            sym: \"NewB\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 58..65,\n        sym: \"Factory\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 114..121,\n        sym: \"Factory\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 13..21,\n        sym: \"abstract\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 38..39,\n        sym: \"A\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 94..95,\n        sym: \"A\",\n    },\n)",
    "New(\n    NewExpr {\n        span: 90..96,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 150..151,\n        sym: \"B\",\n    },\n)",
    "New(\n    NewExpr {\n        span: 146..152,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 156..160,\n        sym: \"NewA\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 161..162,\n        sym: \"A\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 160..164,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 165..169,\n        sym: \"NewA\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 170..171,\n        sym: \"B\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 169..173,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 175..179,\n        sym: \"NewB\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 180..181,\n        sym: \"A\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 179..183,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 184..188,\n        sym: \"NewB\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 189..190,\n        sym: \"B\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 188..192,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [
    "Class {\n    span: 2..21,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 8..9,\n            sym: \"A\",\n        },\n    ),\n    super_class: None,\n    body: [],\n}",
    "Class {\n    span: 22..52,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 28..29,\n            sym: \"B\",\n        },\n    ),\n    super_class: Some(\n        _,\n    ),\n    body: [],\n}"
  ],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": []
}
