{
  "programs": [
    "Program {\n    span: 16..592,\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    ],\n}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 205..225,\n        expr: _,\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 234..249,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 222..295,\n        expr: _,\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)",
    "Expr(\n    ExprStmt {\n        span: 541..544,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 543..545,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 544..548,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 546..550,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 549..553,\n        stmts: [],\n    },\n)",
    "Empty(\n    EmptyStmt {\n        span: 552..553,\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 16..38,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 16..38,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 35..77,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 35..77,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 74..125,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 74..125,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 122..175,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 122..175,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 167..208,\n        ident: Ident {\n            span: 176..179,\n            sym: \"foo\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 292..318,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 292..314,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 315..344,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 315..340,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 341..369,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 341..365,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 366..397,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 366..393,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 394..424,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 394..420,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 421..449,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 421..445,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 446..481,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 446..477,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 478..510,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 478..506,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 554..592,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 554..591,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 20..22,\n        sym: \"f1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 23..38,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 39..41,\n        sym: \"f2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 45..46,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 56..57,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 42..77,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 78..80,\n        sym: \"f3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 84..85,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 95..96,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 109..113,\n        sym: \"rest\",\n    },\n)",
    "Rest(\n    RestPat {\n        span: 106..114,\n        arg: _,\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 81..125,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 126..128,\n        sym: \"f4\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 132..133,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 143..144,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 154..155,\n        sym: \"z\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 155..159,\n        left: _,\n        right: _,\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 129..175,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 180..184,\n        sym: \"func\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 296..298,\n        sym: \"p1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 303..304,\n        sym: \"a\",\n    },\n)",
    "Array(\n    ArrayPat {\n        span: 302..306,\n        elems: [\n            Some(\n                _,\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 299..314,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 319..321,\n        sym: \"p2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 329..330,\n        sym: \"a\",\n    },\n)",
    "Rest(\n    RestPat {\n        span: 326..331,\n        arg: _,\n    },\n)",
    "Array(\n    ArrayPat {\n        span: 325..332,\n        elems: [\n            Some(\n                _,\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 322..340,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 345..347,\n        sym: \"p3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 354..355,\n        sym: \"a\",\n    },\n)",
    "Array(\n    ArrayPat {\n        span: 351..357,\n        elems: [\n            None,\n            Some(\n                _,\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 348..365,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 370..372,\n        sym: \"p4\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 382..383,\n        sym: \"a\",\n    },\n)",
    "Rest(\n    RestPat {\n        span: 379..384,\n        arg: _,\n    },\n)",
    "Array(\n    ArrayPat {\n        span: 376..385,\n        elems: [\n            None,\n            Some(\n                _,\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 373..393,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 398..400,\n        sym: \"p5\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 405..406,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 407..411,\n        left: _,\n        right: _,\n    },\n)",
    "Array(\n    ArrayPat {\n        span: 404..412,\n        elems: [\n            Some(\n                _,\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 401..420,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 425..427,\n        sym: \"p6\",\n    },\n)",
    "Object(\n    ObjectPat {\n        span: 431..437,\n        props: [\n            Assign(\n                ObjectPatAssign {\n                    span: 433..436,\n                    key: Ident {\n                        span: 433..434,\n                        sym: \"a\",\n                    },\n                    value: None,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 428..445,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 450..452,\n        sym: \"p7\",\n    },\n)",
    "Object(\n    ObjectPat {\n        span: 461..468,\n        props: [\n            Assign(\n                ObjectPatAssign {\n                    span: 463..466,\n                    key: Ident {\n                        span: 463..464,\n                        sym: \"b\",\n                    },\n                    value: None,\n                },\n            ),\n        ],\n    },\n)",
    "Object(\n    ObjectPat {\n        span: 456..469,\n        props: [\n            KeyValue(\n                ObjectPatKeyValue {\n                    span: 458..468,\n                    key: Ident(\n                        Ident {\n                            span: 458..459,\n                            sym: \"a\",\n                        },\n                    ),\n                    value: _,\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 453..477,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 482..484,\n        sym: \"p8\",\n    },\n)",
    "Object(\n    ObjectPat {\n        span: 488..498,\n        props: [\n            Assign(\n                ObjectPatAssign {\n                    span: 490..497,\n                    key: Ident {\n                        span: 490..491,\n                        sym: \"a\",\n                    },\n                    value: Some(\n                        _,\n                    ),\n                },\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 485..506,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 558..561,\n        sym: \"p10\",\n    },\n)",
    "Object(\n    ObjectPat {\n        span: 566..582,\n        props: [\n            Assign(\n                ObjectPatAssign {\n                    span: 568..574,\n                    key: Ident {\n                        span: 568..573,\n                        sym: \"value\",\n                    },\n                    value: None,\n                },\n            ),\n            Assign(\n                ObjectPatAssign {\n                    span: 575..581,\n                    key: Ident {\n                        span: 575..579,\n                        sym: \"done\",\n                    },\n                    value: None,\n                },\n            ),\n        ],\n    },\n)",
    "Array(\n    ArrayPat {\n        span: 565..583,\n        elems: [\n            Some(\n                _,\n            ),\n        ],\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 562..591,\n        left: _,\n        right: _,\n    },\n)"
  ],
  "exprs": [
    "Arrow(\n    ArrowExpr {\n        span: 25..38,\n        params: [],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 44..77,\n        params: [\n            _,\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 83..125,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 156..158,\n            value: 10.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 131..175,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 205..208,\n        sym: \"foo\",\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 215..219,\n            value: true,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 209..220,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 208..221,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 222..225,\n        sym: \"foo\",\n    },\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 241..246,\n            value: false,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 226..250,\n        params: [],\n        body: Block(\n            [\n                _,\n            ],\n        ),\n        is_async: false,\n    },\n)",
    "Call(\n    CallExpr {\n        span: 225..251,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 301..314,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 324..340,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 350..365,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 375..393,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 409..410,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 403..420,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 430..445,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 455..477,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 494..495,\n            value: 1.0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 487..506,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 564..591,\n        params: [\n            _,\n        ],\n        body: Block(\n            [],\n        ),\n        is_async: false,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": []
}
