{
  "programs": [
    "Program {\n    span: 1..1883,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Empty(\n    EmptyStmt {\n        span: 59..60,\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: 379..391,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 390..402,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 401..409,\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)",
    "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)",
    "Throw(\n    ThrowStmt {\n        span: 985..1023,\n        arg: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1092..1119,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1131..1152,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 1054..1154,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 1075..1119,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1115..1152,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1223..1250,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1262..1283,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 1185..1294,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 1206..1250,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1246..1283,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1288..1312,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1367..1375,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1357..1384,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1395..1403,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1385..1405,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 1350..1405,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1475..1483,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1465..1492,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1503..1511,\n        expr: _,\n    },\n)",
    "Block(\n    BlockStmt {\n        span: 1493..1513,\n        stmts: [\n            _,\n        ],\n    },\n)",
    "If(\n    IfStmt {\n        span: 1443..1513,\n        test: _,\n        cons: _,\n        alt: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1673..1697,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1709..1726,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 1630..1728,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 1656..1697,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1693..1726,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1801..1825,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1837..1854,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Switch(\n    SwitchStmt {\n        span: 1758..1865,\n        discriminant: _,\n        cases: [\n            SwitchCase {\n                span: 1784..1825,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n            SwitchCase {\n                span: 1821..1854,\n                test: Some(\n                    _,\n                ),\n                cons: [\n                    _,\n                ],\n            },\n        ],\n    },\n)",
    "Return(\n    ReturnStmt {\n        span: 1859..1883,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "TsEnum(\n    TsEnumDecl {\n        span: 1..60,\n        ident: Ident {\n            span: 12..18,\n            sym: \"Choice\",\n        },\n        declare: false,\n        is_const: true,\n        members: [\n            TsEnumMember {\n                span: 21..34,\n                name: Ident(\n                    Ident {\n                        span: 21..28,\n                        sym: \"Unknown\",\n                    },\n                ),\n                init: Some(\n                    _,\n                ),\n            },\n            TsEnumMember {\n                span: 35..47,\n                name: Ident(\n                    Ident {\n                        span: 35..38,\n                        sym: \"Yes\",\n                    },\n                ),\n                init: Some(\n                    _,\n                ),\n            },\n            TsEnumMember {\n                span: 48..59,\n                name: Ident(\n                    Ident {\n                        span: 48..50,\n                        sym: \"No\",\n                    },\n                ),\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 62..103,\n        ident: Ident {\n            span: 67..72,\n            sym: \"YesNo\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 99..140,\n        ident: Ident {\n            span: 104..109,\n            sym: \"NoYes\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 136..206,\n        ident: Ident {\n            span: 141..153,\n            sym: \"UnknownYesNo\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 218..239,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 218..231,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 236..257,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 236..249,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 254..292,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 254..284,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 289..321,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 289..319,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 198..331,\n        ident: Ident {\n            span: 207..209,\n            sym: \"f1\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 323..419,\n        ident: Ident {\n            span: 332..334,\n            sym: \"f2\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 454..476,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 454..468,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 473..496,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 473..488,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 493..516,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 493..508,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 513..537,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 513..529,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 534..558,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 534..550,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 555..577,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 555..569,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 574..596,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 574..588,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 593..616,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 593..608,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 613..636,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 613..628,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 633..646,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 633..644,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 411..655,\n        ident: Ident {\n            span: 420..422,\n            sym: \"f3\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n            _,\n            _,\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 656..698,\n        ident: Ident {\n            span: 665..666,\n            sym: \"g\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 699..741,\n        ident: Ident {\n            span: 708..709,\n            sym: \"g\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 742..782,\n        ident: Ident {\n            span: 751..752,\n            sym: \"g\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 830..861,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 830..853,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 858..888,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 858..880,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 885..907,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 885..899,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 904..926,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 904..918,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 923..939,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 923..937,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 774..949,\n        ident: Ident {\n            span: 783..785,\n            sym: \"f5\",\n        },\n        declare: false,\n        params: [\n            _,\n            _,\n            _,\n        ],\n        body: [\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 941..1033,\n        ident: Ident {\n            span: 950..961,\n            sym: \"assertNever\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1025..1164,\n        ident: Ident {\n            span: 1034..1037,\n            sym: \"f10\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1156..1322,\n        ident: Ident {\n            span: 1165..1168,\n            sym: \"f11\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1314..1415,\n        ident: Ident {\n            span: 1323..1326,\n            sym: \"f12\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1407..1519,\n        ident: Ident {\n            span: 1416..1419,\n            sym: \"f13\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1515..1610,\n        ident: Ident {\n            span: 1520..1524,\n            sym: \"Item\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1602..1738,\n        ident: Ident {\n            span: 1611..1614,\n            sym: \"f20\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1730..1883,\n        ident: Ident {\n            span: 1739..1742,\n            sym: \"f21\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 222..223,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 240..241,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 258..259,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 293..294,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 335..336,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 345..346,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 362..363,\n        sym: \"c\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 379..380,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 390..391,\n        sym: \"c\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 401..402,\n        sym: \"c\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 423..424,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 438..439,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 458..459,\n        sym: \"x\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 460..468,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 477..478,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 479..488,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 497..498,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 499..508,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 517..518,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 519..529,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 538..539,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 540..550,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 559..560,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 561..569,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 578..579,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 580..588,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 597..598,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 599..608,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 617..618,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 619..628,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 637..638,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 639..644,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 667..668,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 710..711,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 753..754,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 786..787,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 796..797,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 813..814,\n        sym: \"c\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 834..836,\n        sym: \"z1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 837..853,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 862..864,\n        sym: \"z2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 865..880,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 889..891,\n        sym: \"z3\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 892..899,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 908..910,\n        sym: \"z4\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 911..918,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 927..929,\n        sym: \"z5\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 930..937,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 962..963,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1038..1039,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1169..1170,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1327..1328,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1420..1421,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1615..1616,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1743..1744,\n        sym: \"x\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Str(\n        StrLit {\n            span: 31..33,\n            value: \"\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 41..46,\n            value: \"yes\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 53..57,\n            value: \"no\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 383..384,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 381..385,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 394..395,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 392..396,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 405..406,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 403..407,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 462..463,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 466..467,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 464..468,\n        op: Add,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 481..482,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 486..487,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 483..488,\n        op: EqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 501..502,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 506..507,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 503..508,\n        op: NotEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 521..522,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 527..528,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 523..529,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 542..543,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 548..549,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 544..550,\n        op: NotEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 563..564,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 567..568,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 565..569,\n        op: Gt,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 582..583,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 586..587,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 584..588,\n        op: Lt,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 601..602,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 606..607,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 603..608,\n        op: GtEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 621..622,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 626..627,\n        sym: \"b\",\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 623..628,\n        op: LtEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 642..643,\n        sym: \"b\",\n    },\n)",
    "Unary(\n    UnaryExpr {\n        span: 641..644,\n        op: Bang,\n        arg: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 839..840,\n        sym: \"g\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 841..847,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 847..852,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 848..851,\n                sym: \"Yes\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 840..853,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 867..868,\n        sym: \"g\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 869..875,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 875..879,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 876..878,\n                sym: \"No\",\n            },\n        ),\n    },\n)",
    "Call(\n    CallExpr {\n        span: 868..880,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 894..895,\n        sym: \"g\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 896..897,\n        sym: \"a\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 895..899,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 913..914,\n        sym: \"g\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 915..916,\n        sym: \"b\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 914..918,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 932..933,\n        sym: \"g\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 934..935,\n        sym: \"c\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 933..937,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 995..1000,\n        sym: \"Error\",\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1001..1019,\n            value: \"Unexpected value\",\n        },\n    ),\n)",
    "Call(\n    CallExpr {\n        span: 1000..1021,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "New(\n    NewExpr {\n        span: 991..1021,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1062..1063,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1080..1086,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1086..1091,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1087..1090,\n                sym: \"Yes\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1099..1105,\n            value: \"true\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1120..1126,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1126..1130,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1127..1129,\n                sym: \"No\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1138..1145,\n            value: \"false\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1193..1194,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1211..1217,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1217..1222,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1218..1221,\n                sym: \"Yes\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1230..1236,\n            value: \"true\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1251..1257,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1257..1261,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1258..1260,\n                sym: \"No\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1269..1276,\n            value: \"false\",\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 1295..1306,\n        sym: \"assertNever\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1307..1308,\n        sym: \"x\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1306..1310,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1354..1355,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1367..1368,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1395..1396,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1447..1448,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1453..1459,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1459..1464,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1460..1463,\n                sym: \"Yes\",\n            },\n        ),\n    },\n)",
    "Binary(\n    BinaryExpr {\n        span: 1449..1464,\n        op: EqEqEq,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1475..1476,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1503..1504,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1638..1639,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1639..1645,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1640..1644,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1661..1667,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1667..1672,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1668..1671,\n                sym: \"Yes\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1680..1681,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1681..1684,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1682..1683,\n                sym: \"a\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1698..1704,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1704..1708,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1705..1707,\n                sym: \"No\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1716..1717,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1717..1720,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1718..1719,\n                sym: \"b\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1766..1767,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1767..1773,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1768..1772,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1789..1795,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1795..1800,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1796..1799,\n                sym: \"Yes\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1808..1809,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1809..1812,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1810..1811,\n                sym: \"a\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1826..1832,\n        sym: \"Choice\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1832..1836,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1833..1835,\n                sym: \"No\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1844..1845,\n        sym: \"x\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1845..1848,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1846..1847,\n                sym: \"b\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1866..1877,\n        sym: \"assertNever\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1878..1879,\n        sym: \"x\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1877..1881,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 75..87,\n        name: Ident {\n            span: 75..87,\n            sym: \"Choice.Yes\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 88..98,\n        name: Ident {\n            span: 88..98,\n            sym: \"Choice.No\",\n        },\n        type_args: [],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 75..98,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 112..123,\n        name: Ident {\n            span: 112..123,\n            sym: \"Choice.No\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 124..135,\n        name: Ident {\n            span: 124..135,\n            sym: \"Choice.Yes\",\n        },\n        type_args: [],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 112..135,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 156..172,\n        name: Ident {\n            span: 156..172,\n            sym: \"Choice.Unknown\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 173..185,\n        name: Ident {\n            span: 173..185,\n            sym: \"Choice.Yes\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 186..196,\n        name: Ident {\n            span: 186..196,\n            sym: \"Choice.No\",\n        },\n        type_args: [],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 156..196,\n        types: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1539..1550,\n        name: Ident {\n            span: 1539..1550,\n            sym: \"Choice.Yes\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1531..1564,\n        members: [\n            TsTypeMember {\n                span: 1533..1552,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1533..1537,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1551..1562,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1551..1552,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1577..1587,\n        name: Ident {\n            span: 1577..1587,\n            sym: \"Choice.No\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1569..1600,\n        members: [\n            TsTypeMember {\n                span: 1571..1589,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1571..1575,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1588..1599,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1588..1589,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 1531..1600,\n        types: [\n            _,\n            _,\n        ],\n    },\n)"
  ]
}
