{
  "programs": [
    "Program {\n    span: 20..3453,\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        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\n        _,\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)",
    "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)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1093..1120,\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)",
    "Expr(\n    ExprStmt {\n        span: 1579..1585,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 1671..1678,\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)",
    "Expr(\n    ExprStmt {\n        span: 2208..2242,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2240..2278,\n        expr: _,\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: 2462..2473,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2471..2483,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2481..2492,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 2490..2527,\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)",
    "Expr(\n    ExprStmt {\n        span: 3309..3318,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 3306..3318,\n        label: Ident {\n            span: 3306..3307,\n            sym: \"a\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3320..3328,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 3317..3328,\n        label: Ident {\n            span: 3317..3318,\n            sym: \"x\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3327..3337,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3363..3372,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 3360..3372,\n        label: Ident {\n            span: 3360..3361,\n            sym: \"b\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3374..3382,\n        expr: _,\n    },\n)",
    "Labeled(\n    LabeledStmt {\n        span: 3371..3382,\n        label: Ident {\n            span: 3371..3372,\n            sym: \"y\",\n        },\n        body: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 3381..3393,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)"
  ],
  "decls": [
    "Var(\n    VarDecl {\n        span: 28..62,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 28..54,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 63..95,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 63..89,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 91..127,\n        ident: Ident {\n            span: 96..98,\n            sym: \"T1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 123..167,\n        ident: Ident {\n            span: 128..130,\n            sym: \"T2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 163..197,\n        ident: Ident {\n            span: 168..170,\n            sym: \"T3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 193..235,\n        ident: Ident {\n            span: 198..200,\n            sym: \"T4\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 231..283,\n        ident: Ident {\n            span: 236..238,\n            sym: \"T5\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 279..339,\n        ident: Ident {\n            span: 284..286,\n            sym: \"T6\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 335..411,\n        ident: Ident {\n            span: 340..342,\n            sym: \"T7\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 407..458,\n        ident: Ident {\n            span: 412..415,\n            sym: \"T10\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 454..515,\n        ident: Ident {\n            span: 459..462,\n            sym: \"T11\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 511..536,\n        ident: Ident {\n            span: 516..518,\n            sym: \"N1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 532..568,\n        ident: Ident {\n            span: 537..539,\n            sym: \"N2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 564..605,\n        ident: Ident {\n            span: 569..571,\n            sym: \"N3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 601..632,\n        ident: Ident {\n            span: 606..608,\n            sym: \"N4\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 628..659,\n        ident: Ident {\n            span: 633..635,\n            sym: \"N5\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 655..686,\n        ident: Ident {\n            span: 660..662,\n            sym: \"N6\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 682..712,\n        ident: Ident {\n            span: 687..689,\n            sym: \"N7\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 708..737,\n        ident: Ident {\n            span: 713..714,\n            sym: \"X\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 733..762,\n        ident: Ident {\n            span: 738..740,\n            sym: \"X1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 758..798,\n        ident: Ident {\n            span: 763..765,\n            sym: \"X2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 794..839,\n        ident: Ident {\n            span: 799..801,\n            sym: \"X3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 835..870,\n        ident: Ident {\n            span: 840..842,\n            sym: \"X4\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 866..901,\n        ident: Ident {\n            span: 871..873,\n            sym: \"X5\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 897..932,\n        ident: Ident {\n            span: 902..904,\n            sym: \"X6\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 928..962,\n        ident: Ident {\n            span: 933..935,\n            sym: \"X7\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 958..999,\n        ident: Ident {\n            span: 963..964,\n            sym: \"A\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 995..1036,\n        ident: Ident {\n            span: 1000..1001,\n            sym: \"B\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1032..1077,\n        ident: Ident {\n            span: 1037..1038,\n            sym: \"C\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1078..1095,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 1078..1092,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1121..1150,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 1121..1140,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1147..1166,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1147..1160,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1162..1193,\n        ident: Ident {\n            span: 1167..1169,\n            sym: \"AB\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1189..1221,\n        ident: Ident {\n            span: 1194..1196,\n            sym: \"BC\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1217..1257,\n        ident: Ident {\n            span: 1222..1224,\n            sym: \"U1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1253..1294,\n        ident: Ident {\n            span: 1258..1260,\n            sym: \"U2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1290..1331,\n        ident: Ident {\n            span: 1295..1297,\n            sym: \"U3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1327..1366,\n        ident: Ident {\n            span: 1332..1334,\n            sym: \"U4\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1362..1394,\n        ident: Ident {\n            span: 1367..1369,\n            sym: \"U5\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1390..1448,\n        ident: Ident {\n            span: 1395..1397,\n            sym: \"K1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1444..1497,\n        ident: Ident {\n            span: 1449..1451,\n            sym: \"K2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1674..1731,\n        ident: Ident {\n            span: 1679..1681,\n            sym: \"M1\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1727..1788,\n        ident: Ident {\n            span: 1732..1734,\n            sym: \"M2\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1784..1864,\n        ident: Ident {\n            span: 1789..1791,\n            sym: \"M3\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1860..1902,\n        ident: Ident {\n            span: 1865..1866,\n            sym: \"D\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1898..1944,\n        ident: Ident {\n            span: 1903..1904,\n            sym: \"E\",\n        },\n        declare: false,\n        type_params: [],\n        ty: _,\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 1945..1988,\n        ident: Ident {\n            span: 1954..1957,\n            sym: \"f10\",\n        },\n        declare: true,\n        params: [\n            _,\n        ],\n        body: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1989..2011,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 1989..2003,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2012..2035,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 2012..2030,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2032..2065,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2032..2049,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2062..2119,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2062..2079,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2114..2151,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2114..2145,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2146..2188,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2146..2179,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2189..2210,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 2189..2206,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 2273..2297,\n        ident: Ident {\n            span: 2284..2288,\n            sym: \"Tag1\",\n        },\n        declare: false,\n        is_const: true,\n        members: [],\n    },\n)",
    "TsEnum(\n    TsEnumDecl {\n        span: 2292..2319,\n        ident: Ident {\n            span: 2303..2307,\n            sym: \"Tag2\",\n        },\n        declare: false,\n        is_const: true,\n        members: [],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2320..2350,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 2320..2342,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2351..2382,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 2351..2373,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2383..2425,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 2383..2417,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2426..2464,\n        kind: Let,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 2426..2460,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2522..2572,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2522..2566,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 2568..2632,\n        ident: Ident {\n            span: 2573..2582,\n            sym: \"Container\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 2583..2587,\n                sym: \"Type\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2627..2721,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2627..2715,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2716..2831,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2716..2825,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 2826..2952,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 2826..2919,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 2943..3000,\n        ident: Ident {\n            span: 2953..2955,\n            sym: \"A2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 2962..2978,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2962..2966,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 2977..2989,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2977..2978,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 2991..3046,\n        ident: Ident {\n            span: 3001..3003,\n            sym: \"B2\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 3010..3026,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3010..3014,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 3025..3037,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3025..3026,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3047..3085,\n        kind: Const,\n        declare: true,\n        declarators: [\n            VarDeclarator {\n                span: 3047..3079,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3080..3123,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 3080..3104,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3182..3212,\n        kind: Const,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 3182..3210,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 3115..3245,\n        ident: Ident {\n            span: 3124..3133,\n            sym: \"inGeneric\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 3236..3283,\n        ident: Ident {\n            span: 3246..3249,\n            sym: \"ABI\",\n        },\n        declare: false,\n        type_params: [],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 3256..3274,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 3256..3260,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 3434..3452,\n        kind: Let,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 3434..3450,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 3385..3453,\n        ident: Ident {\n            span: 3394..3397,\n            sym: \"bar\",\n        },\n        declare: false,\n        params: [\n            _,\n        ],\n        body: [\n            _,\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 34..38,\n        sym: \"sym1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 69..73,\n        sym: \"sym2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1082..1084,\n        sym: \"ab\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1125..1126,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1151..1152,\n        sym: \"a\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1961..1962,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1993..1995,\n        sym: \"a1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2016..2018,\n        sym: \"a2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2036..2038,\n        sym: \"r1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2039..2049,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2066..2068,\n        sym: \"r2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2069..2079,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2120..2122,\n        sym: \"x1\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2123..2145,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2152..2154,\n        sym: \"x2\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2155..2179,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2193..2194,\n        sym: \"k\",\n    },\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 2324..2326,\n        sym: \"s1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2355..2357,\n        sym: \"s2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2387..2389,\n        sym: \"t1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2430..2432,\n        sym: \"t2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2462..2464,\n        sym: \"s1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2471..2473,\n        sym: \"s2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2481..2483,\n        sym: \"t1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2490..2492,\n        sym: \"t2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2528..2530,\n        sym: \"f1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2534..2535,\n        sym: \"t\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2531..2566,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2633..2635,\n        sym: \"f2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2639..2640,\n        sym: \"t\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2636..2715,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2722..2724,\n        sym: \"f3\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2728..2729,\n        sym: \"t\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2725..2825,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2832..2834,\n        sym: \"f4\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2838..2839,\n        sym: \"t\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 2835..2919,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3053..3062,\n        sym: \"shouldBeB\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3086..3087,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3153..3166,\n        sym: \"alsoShouldBeB\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3188..3189,\n        sym: \"b\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3417..3418,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3438..3440,\n        sym: \"ab\",\n    },\n)"
  ],
  "exprs": [
    "Ident(\n    Ident {\n        span: 1093..1095,\n        sym: \"ab\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 1095..1101,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 1096..1100,\n                sym: \"kind\",\n            },\n        ),\n    },\n)",
    "Ident(\n    Ident {\n        span: 1158..1159,\n        sym: \"x\",\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)",
    "Ident(\n    Ident {\n        span: 2041..2044,\n        sym: \"f10\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2045..2047,\n        sym: \"a1\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2044..2049,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2071..2074,\n        sym: \"f10\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2075..2077,\n        sym: \"a2\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 2074..2079,\n        callee: _,\n        args: [\n            ExprOrSpread {\n                spread: false,\n                expr: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2130..2135,\n            value: \"foo\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 2140..2142,\n            value: 42.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 2125..2145,\n        props: [\n            KeyValueProp {\n                span: 2127..2136,\n                key: Ident(\n                    Ident {\n                        span: 2127..2128,\n                        sym: \"a\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 2137..2144,\n                key: Ident(\n                    Ident {\n                        span: 2137..2138,\n                        sym: \"b\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2162..2167,\n            value: \"foo\",\n        },\n    ),\n)",
    "Lit(\n    Bool(\n        BoolLit {\n            span: 2172..2176,\n            value: true,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 2157..2179,\n        props: [\n            KeyValueProp {\n                span: 2159..2168,\n                key: Ident(\n                    Ident {\n                        span: 2159..2160,\n                        sym: \"a\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 2169..2178,\n                key: Ident(\n                    Ident {\n                        span: 2169..2170,\n                        sym: \"b\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Ident(\n    Ident {\n        span: 2208..2210,\n        sym: \"x1\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2211..2212,\n        sym: \"k\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2210..2215,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2216..2221,\n            value: \"bar\",\n        },\n    ),\n)",
    "TsAs(\n    TsAsExpr {\n        span: 2222..2229,\n        expr: _,\n        ty: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2214..2229,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2240..2242,\n        sym: \"x2\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 2243..2244,\n        sym: \"k\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 2242..2247,\n        obj: _,\n        prop: Computed(\n            _,\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2248..2253,\n            value: \"bar\",\n        },\n    ),\n)",
    "TsAs(\n    TsAsExpr {\n        span: 2254..2261,\n        expr: _,\n        ty: _,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2246..2261,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2467..2469,\n        sym: \"s2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2465..2470,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2476..2478,\n        sym: \"s1\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2474..2479,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2486..2488,\n        sym: \"t2\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2484..2489,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2495..2497,\n        sym: \"t1\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 2493..2498,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2564..2565,\n        sym: \"t\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2533..2566,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2713..2714,\n        sym: \"t\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2638..2715,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2823..2824,\n        sym: \"t\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2727..2825,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 2917..2918,\n        sym: \"t\",\n    },\n)",
    "Arrow(\n    ArrowExpr {\n        span: 2837..2919,\n        params: [\n            _,\n        ],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Ident(\n    Ident {\n        span: 3094..3103,\n        sym: \"shouldBeB\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3196..3209,\n        sym: \"alsoShouldBeB\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3309..3315,\n        sym: \"string\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3320..3326,\n        sym: \"number\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3363..3369,\n        sym: \"string\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 3374..3380,\n        sym: \"number\",\n    },\n)",
    "Lit(\n    Null(\n        NullLit {\n            span: 0..0,\n        },\n    ),\n)",
    "Ident(\n    Ident {\n        span: 3448..3449,\n        sym: \"x\",\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "Keyword(\n    String,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 110..113,\n            value: \"a\",\n        },\n    ),\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 101..114,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 133..136,\n            value: \"a\",\n        },\n    ),\n)",
    "Keyword(\n    String,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 148..151,\n            value: \"b\",\n        },\n    ),\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 133..152,\n        types: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 182..184,\n            value: 10.0,\n        },\n    ),\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 173..185,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 203..205,\n            value: 10.0,\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 217..219,\n            value: 20.0,\n        },\n    ),\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 203..220,\n        types: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Symbol,\n)",
    "TypeQuery(\n    TsTypeQuery {\n        span: 250..262,\n        expr_name: Ident {\n            span: 257..262,\n            sym: \"sym1\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 241..262,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeQuery(\n    TsTypeQuery {\n        span: 289..302,\n        expr_name: Ident {\n            span: 296..302,\n            sym: \"sym1\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Symbol,\n)",
    "TypeQuery(\n    TsTypeQuery {\n        span: 312..324,\n        expr_name: Ident {\n            span: 319..324,\n            sym: \"sym2\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 289..324,\n        types: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 354..357,\n            value: \"a\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 369..371,\n            value: 10.0,\n        },\n    ),\n)",
    "Keyword(\n    Symbol,\n)",
    "TypeQuery(\n    TsTypeQuery {\n        span: 383..395,\n        expr_name: Ident {\n            span: 390..395,\n            sym: \"sym1\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 345..395,\n        types: [\n            _,\n            _,\n            _,\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 428..431,\n            value: \"a\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 434..437,\n            value: \"b\",\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 428..438,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 427..439,\n        ty: _,\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 418..439,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Union(\n    TsUnionType {\n        span: 466..482,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 465..484,\n        ty: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 486..489,\n            value: \"a\",\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 492..494,\n            value: 10.0,\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 486..495,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 485..496,\n        ty: _,\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 465..496,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 521..524,\n            value: \"a\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 527..530,\n            value: \"b\",\n        },\n    ),\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 521..531,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 542..557,\n        members: [\n            TsTypeMember {\n                span: 544..555,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 544..545,\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: 558..563,\n        name: Ident {\n            span: 558..563,\n            sym: \"null\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 542..563,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 574..589,\n        members: [\n            TsTypeMember {\n                span: 576..587,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 576..577,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Keyword(\n    Undefined,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 574..600,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 611..627,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Object,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 638..654,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Symbol,\n)",
    "Keyword(\n    String,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 665..681,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    String,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 692..706,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 717..731,\n        members: [\n            TsTypeMember {\n                span: 719..730,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 719..720,\n                            sym: \"x\",\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: 743..746,\n        name: Ident {\n            span: 743..746,\n            sym: \"X\",\n        },\n        type_args: [],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 747..750,\n            value: \"a\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 753..756,\n            value: \"b\",\n        },\n    ),\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 747..757,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 743..757,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 768..771,\n        name: Ident {\n            span: 768..771,\n            sym: \"X\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 772..787,\n        members: [\n            TsTypeMember {\n                span: 774..785,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 774..775,\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: 788..793,\n        name: Ident {\n            span: 788..793,\n            sym: \"null\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 772..793,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 768..793,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 804..807,\n        name: Ident {\n            span: 804..807,\n            sym: \"X\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 808..823,\n        members: [\n            TsTypeMember {\n                span: 810..821,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 810..811,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Keyword(\n    Undefined,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 808..834,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 804..834,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 845..848,\n        name: Ident {\n            span: 845..848,\n            sym: \"X\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    String,\n)",
    "Keyword(\n    Number,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 849..865,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 845..865,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 876..879,\n        name: Ident {\n            span: 876..879,\n            sym: \"X\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Number,\n)",
    "Keyword(\n    Object,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 880..896,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 876..896,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 907..910,\n        name: Ident {\n            span: 907..910,\n            sym: \"X\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Symbol,\n)",
    "Keyword(\n    String,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 911..927,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 907..927,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 938..941,\n        name: Ident {\n            span: 938..941,\n            sym: \"X\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Keyword(\n    String,\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 942..956,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 938..956,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 975..978,\n            value: \"a\",\n        },\n    ),\n)",
    "Keyword(\n    String,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 967..994,\n        members: [\n            TsTypeMember {\n                span: 969..983,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 969..973,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 980..993,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 980..983,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1012..1015,\n            value: \"b\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1004..1031,\n        members: [\n            TsTypeMember {\n                span: 1006..1020,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1006..1010,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1017..1030,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1017..1020,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1049..1052,\n            value: \"c\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1041..1068,\n        members: [\n            TsTypeMember {\n                span: 1043..1057,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1043..1047,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1054..1067,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1054..1057,\n                            sym: \"foo\",\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: 1172..1175,\n        name: Ident {\n            span: 1172..1175,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1176..1178,\n        name: Ident {\n            span: 1176..1178,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1172..1178,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1199..1202,\n        name: Ident {\n            span: 1199..1202,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1203..1205,\n        name: Ident {\n            span: 1203..1205,\n            sym: \"C\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1199..1205,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1235..1238,\n        name: Ident {\n            span: 1235..1238,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1239..1241,\n        name: Ident {\n            span: 1239..1241,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1235..1241,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1227..1242,\n        name: Ident {\n            span: 1227..1235,\n            sym: \"Partial\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1272..1275,\n        name: Ident {\n            span: 1272..1275,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1276..1278,\n        name: Ident {\n            span: 1276..1278,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1272..1278,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1263..1279,\n        name: Ident {\n            span: 1263..1272,\n            sym: \"Readonly\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1301..1304,\n        name: Ident {\n            span: 1301..1304,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1305..1307,\n        name: Ident {\n            span: 1305..1307,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1301..1307,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 1300..1308,\n        ty: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1308..1314,\n            value: \"kind\",\n        },\n    ),\n)",
    "IndexedAccess(\n    TsIndexedAccessType {\n        span: 1300..1316,\n        obj_type: _,\n        index_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1337..1340,\n        name: Ident {\n            span: 1337..1340,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1341..1344,\n        name: Ident {\n            span: 1341..1344,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1337..1344,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1345..1348,\n        name: Ident {\n            span: 1345..1348,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1349..1351,\n        name: Ident {\n            span: 1349..1351,\n            sym: \"C\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1345..1351,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 1337..1351,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1372..1375,\n        name: Ident {\n            span: 1372..1375,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1376..1379,\n        name: Ident {\n            span: 1376..1379,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1380..1382,\n        name: Ident {\n            span: 1380..1382,\n            sym: \"C\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1376..1382,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 1372..1382,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1407..1410,\n        name: Ident {\n            span: 1407..1410,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1411..1413,\n        name: Ident {\n            span: 1411..1413,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1407..1413,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 1406..1414,\n        ty: _,\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 1400..1414,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1460..1463,\n        name: Ident {\n            span: 1460..1463,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 1454..1463,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1470..1472,\n        name: Ident {\n            span: 1470..1472,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "TypeOperator(\n    TsTypeOperatorType {\n        span: 1464..1472,\n        op: KeyOf,\n        ty: _,\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 1454..1472,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1689..1690,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1695..1696,\n            value: 2.0,\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1684..1700,\n        members: [\n            TsTypeMember {\n                span: 1686..1693,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1686..1687,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1692..1698,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1692..1693,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1706..1707,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1712..1713,\n            value: 3.0,\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1701..1716,\n        members: [\n            TsTypeMember {\n                span: 1703..1710,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1703..1704,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1709..1715,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1709..1710,\n                            sym: \"c\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Intersection(\n    TsIntersectionType {\n        span: 1684..1716,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1749..1750,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1755..1756,\n            value: 2.0,\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1744..1759,\n        members: [\n            TsTypeMember {\n                span: 1746..1753,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1746..1747,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1752..1758,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1752..1753,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1765..1766,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1771..1772,\n            value: 3.0,\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1760..1775,\n        members: [\n            TsTypeMember {\n                span: 1762..1769,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1762..1763,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1768..1774,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1768..1769,\n                            sym: \"c\",\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: 1737..1776,\n        name: Ident {\n            span: 1737..1744,\n            sym: \"Merge1\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1806..1807,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1812..1813,\n            value: 2.0,\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1801..1816,\n        members: [\n            TsTypeMember {\n                span: 1803..1810,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1803..1804,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1809..1815,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1809..1810,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1822..1823,\n            value: 2.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 1828..1829,\n            value: 3.0,\n        },\n    ),\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1817..1832,\n        members: [\n            TsTypeMember {\n                span: 1819..1826,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1819..1820,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1825..1831,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1825..1826,\n                            sym: \"c\",\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: 1794..1833,\n        name: Ident {\n            span: 1794..1801,\n            sym: \"Merge2\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1877..1880,\n            value: \"d\",\n        },\n    ),\n)",
    "Keyword(\n    Unknown,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1869..1897,\n        members: [\n            TsTypeMember {\n                span: 1871..1885,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1871..1875,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1882..1896,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1882..1885,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 1915..1918,\n            value: \"e\",\n        },\n    ),\n)",
    "Keyword(\n    Unknown,\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1907..1935,\n        members: [\n            TsTypeMember {\n                span: 1909..1923,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1909..1913,\n                            sym: \"kind\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 1920..1934,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1920..1923,\n                            sym: \"foo\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "Keyword(\n    Any,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 2618..2623,\n        name: Ident {\n            span: 2618..2623,\n            sym: \"Type\",\n        },\n        type_args: [],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 2606..2632,\n        members: [\n            TsTypeMember {\n                span: 2612..2625,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 2612..2616,\n                            sym: \"type\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 2968..2971,\n            value: \"A\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3016..3019,\n            value: \"B\",\n        },\n    ),\n)",
    "Keyword(\n    Number,\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3262..3265,\n            value: \"a\",\n        },\n    ),\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 3268..3271,\n            value: \"b\",\n        },\n    ),\n)",
    "Union(\n    TsUnionType {\n        span: 3262..3272,\n        types: [\n            _,\n            _,\n        ],\n    },\n)"
  ]
}
