{
  "programs": [
    "Program {\n    span: 1..1128,\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}"
  ],
  "stmts": [
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 259..275,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 273..297,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 432..440,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 439..448,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 447..462,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 461..482,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 481..512,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 529..538,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 537..553,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 552..579,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 653..676,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 826..836,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 835..845,\n        expr: _,\n    },\n)",
    "Expr(\n    ExprStmt {\n        span: 844..869,\n        expr: _,\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 941..952,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Return(\n    ReturnStmt {\n        span: 1034..1045,\n        arg: Some(\n            _,\n        ),\n    },\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Decl(\n    _,\n)",
    "Expr(\n    ExprStmt {\n        span: 1121..1128,\n        expr: _,\n    },\n)"
  ],
  "decls": [
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 1..59,\n        ident: Ident {\n            span: 6..10,\n            sym: \"Tree\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 11..12,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 56..210,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 56..204,\n                name: _,\n                init: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 206..240,\n        ident: Ident {\n            span: 211..215,\n            sym: \"Lazy\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 216..217,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 237..261,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 237..258,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 293..330,\n        ident: Ident {\n            span: 298..301,\n            sym: \"Foo\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 302..303,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 326..395,\n        ident: Ident {\n            span: 331..334,\n            sym: \"Bar\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 335..336,\n                sym: \"U\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 392..415,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 392..411,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 412..433,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 412..431,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 509..530,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 509..528,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 575..632,\n        ident: Ident {\n            span: 580..587,\n            sym: \"Strange\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 588..589,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 629..654,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 629..652,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 667..715,\n        ident: Ident {\n            span: 677..679,\n            sym: \"AB\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 680..681,\n                sym: \"A\",\n            },\n            Ident {\n                span: 683..684,\n                sym: \"B\",\n            },\n        ],\n        extends: [],\n        body: [\n            TsTypeMember {\n                span: 692..703,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 692..693,\n                            sym: \"a\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 702..709,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 702..703,\n                            sym: \"b\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 711..746,\n        ident: Ident {\n            span: 716..720,\n            sym: \"Pair\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 721..722,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "TsInterface(\n    TsInterfaceDecl {\n        span: 737..802,\n        ident: Ident {\n            span: 747..757,\n            sym: \"TaggedPair\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 758..759,\n                sym: \"T\",\n            },\n        ],\n        extends: [\n            Ident {\n                span: 769..774,\n                sym: \"Pair\",\n            },\n        ],\n        body: [\n            TsTypeMember {\n                span: 783..797,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 783..786,\n                            sym: \"tag\",\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: 799..827,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 799..825,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 883..923,\n        ident: Ident {\n            span: 888..891,\n            sym: \"Foo\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 892..893,\n                sym: \"T\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 920..947,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 920..936,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 861..962,\n        ident: Ident {\n            span: 870..871,\n            sym: \"f\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "TsTypeAlias(\n    TsTypeAliasDecl {\n        span: 976..1016,\n        ident: Ident {\n            span: 981..984,\n            sym: \"Bar\",\n        },\n        declare: false,\n        type_params: [\n            Ident {\n                span: 985..986,\n                sym: \"U\",\n            },\n        ],\n        ty: _,\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1013..1040,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1013..1029,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Fn(\n    FnDecl {\n        span: 954..1082,\n        ident: Ident {\n            span: 963..964,\n            sym: \"g\",\n        },\n        declare: false,\n        params: [],\n        body: [\n            _,\n            _,\n            _,\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1079..1103,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1079..1099,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)",
    "Var(\n    VarDecl {\n        span: 1100..1122,\n        kind: Var,\n        declare: false,\n        declarators: [\n            VarDeclarator {\n                span: 1100..1120,\n                name: _,\n                init: None,\n            },\n        ],\n    },\n)"
  ],
  "pats": [
    "Ident(\n    Ident {\n        span: 60..64,\n        sym: \"tree\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 241..243,\n        sym: \"ls\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 259..261,\n        sym: \"ls\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 273..275,\n        sym: \"ls\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 396..397,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 416..417,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 432..433,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 439..440,\n        sym: \"y\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 447..448,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 461..462,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 481..482,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 513..514,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 529..530,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 537..538,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 552..553,\n        sym: \"z\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 633..634,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 653..654,\n        sym: \"s\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 803..804,\n        sym: \"p\",\n    },\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Expr(\n    _,\n)",
    "Ident(\n    Ident {\n        span: 924..925,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1017..1018,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1083..1084,\n        sym: \"a\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1085..1099,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1104..1105,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignPat {\n        span: 1106..1120,\n        left: _,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 1121..1122,\n        sym: \"a\",\n    },\n)"
  ],
  "exprs": [
    "Lit(\n    Num(\n        NumberLit {\n            span: 109..110,\n            value: 0.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 147..148,\n            value: 1.0,\n        },\n    ),\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 169..170,\n            value: 2.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 127..181,\n        props: [\n            KeyValueProp {\n                span: 141..149,\n                key: Ident(\n                    Ident {\n                        span: 141..145,\n                        sym: \"left\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 162..180,\n                key: Ident(\n                    Ident {\n                        span: 162..167,\n                        sym: \"right\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 93..188,\n        props: [\n            KeyValueProp {\n                span: 103..111,\n                key: Ident(\n                    Ident {\n                        span: 103..107,\n                        sym: \"left\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 120..181,\n                key: Ident(\n                    Ident {\n                        span: 120..125,\n                        sym: \"right\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 200..201,\n            value: 3.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 81..204,\n        props: [\n            KeyValueProp {\n                span: 87..188,\n                key: Ident(\n                    Ident {\n                        span: 87..91,\n                        sym: \"left\",\n                    },\n                ),\n                value: _,\n            },\n            KeyValueProp {\n                span: 193..203,\n                key: Ident(\n                    Ident {\n                        span: 193..198,\n                        sym: \"right\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 264..271,\n            value: \"eager\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 262..272,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 284..290,\n            value: \"lazy\",\n        },\n    ),\n)",
    "Arrow(\n    ArrowExpr {\n        span: 278..291,\n        params: [],\n        body: Expr(\n            _,\n        ),\n        is_async: false,\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 276..291,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 436..437,\n        sym: \"y\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 434..438,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 443..444,\n        sym: \"x\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 441..445,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 451..459,\n            value: \"string\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 449..460,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 470..477,\n            value: \"hello\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 465..480,\n        props: [\n            KeyValueProp {\n                span: 467..479,\n                key: Ident(\n                    Ident {\n                        span: 467..468,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 463..480,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 495..502,\n            value: \"world\",\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 490..506,\n        props: [\n            KeyValueProp {\n                span: 492..504,\n                key: Ident(\n                    Ident {\n                        span: 492..493,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 485..507,\n        props: [\n            KeyValueProp {\n                span: 487..506,\n                key: Ident(\n                    Ident {\n                        span: 487..488,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 483..507,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 533..535,\n            value: 42.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 531..536,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 546..548,\n            value: 42.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 541..551,\n        props: [\n            KeyValueProp {\n                span: 543..550,\n                key: Ident(\n                    Ident {\n                        span: 543..544,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 539..551,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 566..568,\n            value: 42.0,\n        },\n    ),\n)",
    "Object(\n    ObjectExpr {\n        span: 561..572,\n        props: [\n            KeyValueProp {\n                span: 563..570,\n                key: Ident(\n                    Ident {\n                        span: 563..564,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Object(\n    ObjectExpr {\n        span: 556..573,\n        props: [\n            KeyValueProp {\n                span: 558..572,\n                key: Ident(\n                    Ident {\n                        span: 558..559,\n                        sym: \"x\",\n                    },\n                ),\n                value: _,\n            },\n        ],\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 554..573,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 657..664,\n            value: \"hello\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 655..665,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 826..827,\n        sym: \"p\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 827..831,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 828..829,\n                sym: \"a\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 832..833,\n            value: 1.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 830..834,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 835..836,\n        sym: \"p\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 836..840,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 837..838,\n                sym: \"b\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Num(\n        NumberLit {\n            span: 841..842,\n            value: 2.0,\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 839..843,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 844..845,\n        sym: \"p\",\n    },\n)",
    "Member(\n    MemberExpr {\n        span: 845..851,\n        obj: _,\n        prop: Ident(\n            Ident {\n                span: 846..849,\n                sym: \"tag\",\n            },\n        ),\n    },\n)",
    "Lit(\n    Str(\n        StrLit {\n            span: 852..858,\n            value: \"test\",\n        },\n    ),\n)",
    "Assign(\n    AssignExpr {\n        span: 850..859,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)",
    "Ident(\n    Ident {\n        span: 948..949,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1041..1042,\n        sym: \"x\",\n    },\n)",
    "Ident(\n    Ident {\n        span: 1087..1088,\n        sym: \"f\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1096..1099,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1108..1109,\n        sym: \"g\",\n    },\n)",
    "Call(\n    CallExpr {\n        span: 1117..1120,\n        callee: _,\n        args: [],\n    },\n)",
    "Ident(\n    Ident {\n        span: 1125..1126,\n        sym: \"b\",\n    },\n)",
    "Assign(\n    AssignExpr {\n        span: 1123..1127,\n        left: _,\n        op: Assign,\n        right: _,\n    },\n)"
  ],
  "module_decls": [],
  "functions": [],
  "classes": [],
  "class_members": [],
  "jsx_elements": [],
  "ts_types": [
    "TypeRef(\n    TsTypeRef {\n        span: 16..19,\n        name: Ident {\n            span: 16..19,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 33..35,\n        name: Ident {\n            span: 33..35,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 28..36,\n        name: Ident {\n            span: 28..33,\n            sym: \"Tree\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 49..51,\n        name: Ident {\n            span: 49..51,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 44..53,\n        name: Ident {\n            span: 44..49,\n            sym: \"Tree\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 20..54,\n        members: [\n            TsTypeMember {\n                span: 22..42,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 22..26,\n                            sym: \"left\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n            TsTypeMember {\n                span: 37..53,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 37..42,\n                            sym: \"right\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 16..54,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 221..224,\n        name: Ident {\n            span: 221..224,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 232..234,\n        name: Ident {\n            span: 232..234,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "Fn(\n    TsFnType {\n        span: 226..234,\n        params: [],\n        return_type: _,\n    },\n)",
    "Parenthesized(\n    TsParenthesizedType {\n        span: 225..235,\n        ty: _,\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 221..235,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 307..310,\n        name: Ident {\n            span: 307..310,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 320..322,\n        name: Ident {\n            span: 320..322,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 316..324,\n        name: Ident {\n            span: 316..320,\n            sym: \"Foo\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 311..325,\n        members: [\n            TsTypeMember {\n                span: 313..324,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 313..314,\n                            sym: \"x\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 307..325,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 340..343,\n        name: Ident {\n            span: 340..343,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 353..355,\n        name: Ident {\n            span: 353..355,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 349..357,\n        name: Ident {\n            span: 349..353,\n            sym: \"Bar\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 344..358,\n        members: [\n            TsTypeMember {\n                span: 346..357,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 346..347,\n                            sym: \"x\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 340..358,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 695..697,\n        name: Ident {\n            span: 695..697,\n            sym: \"A\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 705..707,\n        name: Ident {\n            span: 705..707,\n            sym: \"B\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 729..731,\n        name: Ident {\n            span: 729..731,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 732..734,\n        name: Ident {\n            span: 732..734,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 726..735,\n        name: Ident {\n            span: 726..729,\n            sym: \"AB\",\n        },\n        type_args: [\n            _,\n            _,\n        ],\n    },\n)",
    "Keyword(\n    String,\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 897..900,\n        name: Ident {\n            span: 897..900,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 910..912,\n        name: Ident {\n            span: 910..912,\n            sym: \"T\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 906..914,\n        name: Ident {\n            span: 906..910,\n            sym: \"Foo\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 901..915,\n        members: [\n            TsTypeMember {\n                span: 903..914,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 903..904,\n                            sym: \"x\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 897..915,\n        types: [\n            _,\n            _,\n        ],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 990..993,\n        name: Ident {\n            span: 990..993,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 1003..1005,\n        name: Ident {\n            span: 1003..1005,\n            sym: \"U\",\n        },\n        type_args: [],\n    },\n)",
    "TypeRef(\n    TsTypeRef {\n        span: 999..1007,\n        name: Ident {\n            span: 999..1003,\n            sym: \"Bar\",\n        },\n        type_args: [\n            _,\n        ],\n    },\n)",
    "TypeLit(\n    TsTypeLit {\n        span: 994..1008,\n        members: [\n            TsTypeMember {\n                span: 996..1007,\n                kind: Property,\n                name: Some(\n                    Ident(\n                        Ident {\n                            span: 996..997,\n                            sym: \"x\",\n                        },\n                    ),\n                ),\n                optional: false,\n                readonly: false,\n                params: [],\n                ty: Some(\n                    _,\n                ),\n            },\n        ],\n    },\n)",
    "Union(\n    TsUnionType {\n        span: 990..1008,\n        types: [\n            _,\n            _,\n        ],\n    },\n)"
  ]
}
