{
  "programs": [
    "Program {\n    span: 1..1097,\n    kind: Script,\n    body: [\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)"
  ],
  "decls": [
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1..158,\n        ident: Ident {\n            span: 6..8,\n            sym: \"X1\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 9..10,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 154..352,\n        ident: Ident {\n            span: 159..161,\n            sym: \"X2\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 162..163,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 348..563,\n        ident: Ident {\n            span: 353..355,\n            sym: \"X3\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 356..357,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 559..800,\n        ident: Ident {\n            span: 564..566,\n            sym: \"X4\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 567..568,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 796..953,\n        ident: Ident {\n            span: 801..803,\n            sym: \"X5\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 804..805,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 949..1097,\n        ident: Ident {\n            span: 954..956,\n            sym: \"X6\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 957..958,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)"
  ],
  "pats": [],
  "exprs": [],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 32..41,\n        name: Ident {\n            span: 32..41,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 43..58,\n        type_param: Ident {\n            span: 49..50,\n            sym: \"U\",\n        },\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 42..68,\n        elem_types: [\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 70..78,\n            value: \"string\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 80..82,\n        name: Ident {\n            span: 80..82,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 69..84,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 89..98,\n        name: Ident {\n            span: 89..98,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 100..115,\n        type_param: Ident {\n            span: 106..107,\n            sym: \"U\",\n        },\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 99..125,\n        elem_types: [\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 127..135,\n            value: \"number\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 137..139,\n        name: Ident {\n            span: 137..139,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 126..141,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 89..152,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 32..152,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 204..213,\n        name: Ident {\n            span: 204..213,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 218..233,\n        type_param: Ident {\n            span: 224..225,\n            sym: \"U\",\n        },\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 214..251,\n        params: [\n            TsFnParam {\n                span: 215..241,\n                name: Some(\n                    Ident {\n                        span: 215..216,\n                        sym: \"a\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 253..261,\n            value: \"string\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 263..265,\n        name: Ident {\n            span: 263..265,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 252..267,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 272..281,\n        name: Ident {\n            span: 272..281,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 286..301,\n        type_param: Ident {\n            span: 292..293,\n            sym: \"U\",\n        },\n    },\n)",
    "Keyword(\n    Void,\n)",
    "Fn(\n    TsFnType {\n        span: 282..319,\n        params: [\n            TsFnParam {\n                span: 283..309,\n                name: Some(\n                    Ident {\n                        span: 283..284,\n                        sym: \"a\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: false,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 321..329,\n            value: \"number\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 331..333,\n        name: Ident {\n            span: 331..333,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 320..335,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 272..346,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 204..346,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 397..406,\n        name: Ident {\n            span: 397..406,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "Array(\n    TsArrayType {\n        span: 417..423,\n        elem_type: _,\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 428..443,\n        type_param: Ident {\n            span: 434..435,\n            sym: \"U\",\n        },\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 427..453,\n        ty: _,\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 407..453,\n        params: [\n            TsFnParam {\n                span: 408..423,\n                name: Some(\n                    Ident {\n                        span: 411..415,\n                        sym: \"args\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: true,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 455..463,\n            value: \"string\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 465..467,\n        name: Ident {\n            span: 465..467,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 454..469,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 474..483,\n        name: Ident {\n            span: 474..483,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "Array(\n    TsArrayType {\n        span: 494..500,\n        elem_type: _,\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 505..520,\n        type_param: Ident {\n            span: 511..512,\n            sym: \"U\",\n        },\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 504..530,\n        ty: _,\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 484..530,\n        params: [\n            TsFnParam {\n                span: 485..500,\n                name: Some(\n                    Ident {\n                        span: 488..492,\n                        sym: \"args\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: true,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 532..540,\n            value: \"number\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 542..544,\n        name: Ident {\n            span: 542..544,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 531..546,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 474..557,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 397..557,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 612..621,\n        name: Ident {\n            span: 612..621,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "Array(\n    TsArrayType {\n        span: 636..642,\n        elem_type: _,\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 647..662,\n        type_param: Ident {\n            span: 653..654,\n            sym: \"U\",\n        },\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 646..679,\n        ty: _,\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 626..679,\n        params: [\n            TsFnParam {\n                span: 627..642,\n                name: Some(\n                    Ident {\n                        span: 630..634,\n                        sym: \"args\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: true,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 681..689,\n            value: \"string\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 691..693,\n        name: Ident {\n            span: 691..693,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 680..695,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 700..709,\n        name: Ident {\n            span: 700..709,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Keyword(\n    Any,\n)",
    "Array(\n    TsArrayType {\n        span: 724..730,\n        elem_type: _,\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 735..750,\n        type_param: Ident {\n            span: 741..742,\n            sym: \"U\",\n        },\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 734..767,\n        ty: _,\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 714..767,\n        params: [\n            TsFnParam {\n                span: 715..730,\n                name: Some(\n                    Ident {\n                        span: 718..722,\n                        sym: \"args\",\n                    },\n                ),\n                ty: Some(\n                    _,\n                ),\n                is_rest: true,\n                optional: false,\n            },\n        ],\n        return_type: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 769..777,\n            value: \"number\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 779..781,\n        name: Ident {\n            span: 779..781,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 768..783,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 700..794,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 612..794,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 813..822,\n        name: Ident {\n            span: 813..822,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 831..846,\n        type_param: Ident {\n            span: 837..838,\n            sym: \"U\",\n        },\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 823..856,\n        name: Ident {\n            span: 823..831,\n            sym: \"Promise\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 858..866,\n            value: \"string\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 868..870,\n        name: Ident {\n            span: 868..870,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 857..872,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 877..886,\n        name: Ident {\n            span: 877..886,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 895..910,\n        type_param: Ident {\n            span: 901..902,\n            sym: \"U\",\n        },\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 887..920,\n        name: Ident {\n            span: 887..895,\n            sym: \"Promise\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 922..930,\n            value: \"number\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 932..934,\n        name: Ident {\n            span: 932..934,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 921..936,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 877..947,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 813..947,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 966..975,\n        name: Ident {\n            span: 966..975,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 981..996,\n        type_param: Ident {\n            span: 987..988,\n            sym: \"U\",\n        },\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 976..1007,\n        members: [\n            TsTypeMember {\n                span: 978..1005,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 978..979,\n                            sym: \"a\",\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: 1009..1017,\n            value: \"string\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1019..1021,\n        name: Ident {\n            span: 1019..1021,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 1008..1023,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1028..1037,\n        name: Ident {\n            span: 1028..1037,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Infer(\n    TsInferType {\n        span: 1043..1058,\n        type_param: Ident {\n            span: 1049..1050,\n            sym: \"U\",\n        },\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 1038..1069,\n        members: [\n            TsTypeMember {\n                span: 1040..1067,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 1040..1041,\n                            sym: \"a\",\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: 1071..1079,\n            value: \"number\",\n        },\n    ),\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1081..1083,\n        name: Ident {\n            span: 1081..1083,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "Tuple(\n    TsTupleType {\n        span: 1070..1085,\n        elem_types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    Never,\n)",
    "Conditional(\n    TsConditionalType {\n        span: 1028..1096,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)",
    "Conditional(\n    TsConditionalType {\n        span: 966..1096,\n        check_type: _,\n        extends_type: _,\n        true_type: _,\n        false_type: _,\n    },\n)"
  ]
}
