{
  "programs": [
    "Program {\n    span: 45..1078,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "ModuleDecl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1041..1063,\n        expr: _,\n    },\n)",
    "Break(\n    BreakStmt {\n        span: 1058..1076,\n        label: Some(\n            Ident {\n                span: 1064..1069,\n                sym: \"block\",\n            },\n        ),\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1031..1078,\n        stmts: [\n            _,\n            _,\n        ],\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 1024..1078,\n        label: Ident {\n            span: 1024..1029,\n            sym: \"block\",\n        },\n        body: _,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 45..84,\n        ident: Ident {\n            span: 50..59,\n            sym: \"MyPromise\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 60..61,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 85..123,\n        kind: Var,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 85..115,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 124..155,\n        kind: Var,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 124..147,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 156..189,\n        kind: Var,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 156..182,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 184..213,\n        ident: Ident {\n            span: 199..201,\n            sym: \"f0\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 208..252,\n        ident: Ident {\n            span: 223..225,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 247..292,\n        ident: Ident {\n            span: 262..264,\n            sym: \"f3\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 289..322,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 289..322,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 319..367,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 319..367,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 364..415,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 364..415,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 412..441,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 412..437,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 438..482,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 438..478,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 479..525,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 479..521,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 522..550,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 522..546,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 547..576,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 547..572,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 573..619,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 573..615,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 616..664,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 616..659,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 661..762,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 661..755,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Class(\n    ClassDecl {\n        span: 757..957,\n        ident: Ident {\n            span: 763..764,\n            sym: \"C\",\n        },\n        declare: false,\n        class: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 970..995,\n        ident: Ident {\n            span: 985..987,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [],\n        body: [],\n    },\n)",
    "TsModule(\n    TsModuleDecl {\n        span: 951..1002,\n        declare: false,\n        global: false,\n        namespace: false,\n        id: Ident(\n            Ident {\n                span: 958..959,\n                sym: \"M\",\n            },\n        ),\n        body: Some(\n            ModuleBlock(\n                [\n                    _,\n                ],\n            ),\n        ),\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 997..1078,\n        ident: Ident {\n            span: 1012..1015,\n            sym: \"f14\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 89..98,\n        sym: \"MyPromise\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 128..129,\n        sym: \"p\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 160..162,\n        sym: \"mp\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 293..295,\n        sym: \"f4\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 296..322,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 323..325,\n        sym: \"f5\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 326..367,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 368..370,\n        sym: \"f6\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 371..415,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 416..418,\n        sym: \"f7\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 419..437,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 442..444,\n        sym: \"f8\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 445..478,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 483..485,\n        sym: \"f9\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 486..521,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 526..529,\n        sym: \"f10\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 530..546,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 551..554,\n        sym: \"f11\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 555..572,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 577..580,\n        sym: \"f12\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 581..615,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 620..623,\n        sym: \"f13\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 624..659,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 665..666,\n        sym: \"o\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 667..755,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Arrow(\n    ArrowExpr {\n        span: 427..437,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: true,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 453..478,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: true,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 494..521,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: true,\n    },\n)",
    "Ident(\n    Ident {\n        span: 544..545,\n        sym: \"p\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 538..546,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: true,\n    },\n)",
    "Ident(\n    Ident {\n        span: 569..571,\n        sym: \"mp\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 563..572,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: true,\n    },\n)",
    "Ident(\n    Ident {\n        span: 612..614,\n        sym: \"mp\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 589..615,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: true,\n    },\n)",
    "Ident(\n    Ident {\n        span: 657..658,\n        sym: \"p\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 632..659,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: true,\n    },\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Function(\n    _,\n)",
    "Object(\n    ObjectExpr {\n        span: 669..755,\n        props: [\n            KeyValueProp {\n                span: 672..687,\n                key: Ident(\n                    Ident {\n                        span: 678..680,\n                        sym: \"m1\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 689..719,\n                key: Ident(\n                    Ident {\n                        span: 695..697,\n                        sym: \"m2\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 721..754,\n                key: Ident(\n                    Ident {\n                        span: 727..729,\n                        sym: \"m3\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1047..1048,\n            value: 1.0,\n        },\n    ),\n)",
    "Await(\n    AwaitExpr {\n        span: 1041..1049,\n        arg: _,\n    },\n)"
  ],
  "module_decls": [
    "ExportDecl(\n    ExportDecl {\n        span: 963..995,\n        decl: _,\n    },\n)"
  ],
  "functions": [
    "Function {\n    span: 298..322,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 328..367,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 373..415,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 672..687,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 689..719,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 721..754,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 768..789,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 784..820,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 815..854,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 848..877,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 871..915,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}",
    "Function {\n    span: 909..949,\n    params: [],\n    body: [],\n    is_async: true,\n    is_generator: false,\n}"
  ],
  "classes": [
    "Class {\n    span: 757..957,\n    decorators: [],\n    ident: Some(\n        Ident {\n            span: 763..764,\n            sym: \"C\",\n        },\n    ),\n    super_class: None,\n    body: [\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n    ],\n}"
  ],
  "class_members": [
    "Method(\n    ClassMethod {\n        span: 768..789,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 774..776,\n                sym: \"m1\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 784..820,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 790..792,\n                sym: \"m2\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 815..854,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 821..823,\n                sym: \"m3\",\n            },\n        ),\n        function: _,\n        is_static: false,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 848..877,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 861..863,\n                sym: \"m4\",\n            },\n        ),\n        function: _,\n        is_static: true,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 871..915,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 884..886,\n                sym: \"m5\",\n            },\n        ),\n        function: _,\n        is_static: true,\n        kind: Method,\n    },\n)",
    "Method(\n    ClassMethod {\n        span: 909..949,\n        decorators: [],\n        key: Ident(\n            Ident {\n                span: 922..924,\n                sym: \"m6\",\n            },\n        ),\n        function: _,\n        is_static: true,\n        kind: Method,\n    },\n)"
  ],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 73..75,\n        name: Ident {\n            span: 73..75,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 65..76,\n        name: Ident {\n            span: 65..73,\n            sym: \"Promise\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)"
  ]
}
